Skip to content

Commit f36980a

Browse files
committed
add two article
1 parent b64e1b0 commit f36980a

File tree

4 files changed

+459
-0
lines changed

4 files changed

+459
-0
lines changed
Lines changed: 392 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,392 @@
1+
**android中设置activity切换动画有 两种实现方式**
2+
3+
1 . 在 AndroidManifest.xml 文件activity标签中,通过设置 android:theme 主题属性来自定义我们 Activity的切换动画( 主题可以定义很多属性,动画只是其中之一)。
4+
5+
6+
```
7+
<activity
8+
android:name="whateverNameActivity"
9+
android:theme="@style/myActivityTheme" >
10+
</activity>
11+
```
12+
13+
首先要定义自己的主题,打开res/values/styles.xml文件,加入
14+
15+
```
16+
<style name="myActivityTheme">
17+
<itemname="android:windowAnimationStyle">@style/myAnimTheme />
18+
</style>
19+
```
20+
然后继续定义具体切换动画样式,分为4种需要动画的情况。
21+
22+
打开新界面时 :
23+
24+
25+
- 新界面出现(android:activityOpenEnterAnimation)
26+
- 当前界面消失(android:activityOpenExitAnimation)
27+
28+
返回上一界面时:
29+
30+
- 当前界面消失(android:activityCloseExitAnimation)
31+
- 上一界面出现(android:activityCloseEnterAnimation)
32+
33+
> a、b、c、d为自定义在res/anim下的具体动画效果文件(下面贴出)
34+
35+
```
36+
<style name="myAnimTheme " parent="@android:style/Animation.Activity">
37+
<item name="android:activityOpenEnterAnimation">@anim/a />
38+
<item name="android:activityOpenExitAnimation">@anim/b />
39+
<item name="android:activityCloseEnterAnimation">@anim/c />
40+
<item name="android:activityCloseExitAnimation">@anim/d />
41+
</style>
42+
```
43+
44+
2 . 在Android的2.0版本之后,加入了overridePendingTransition()这个函数来帮我们实现activity切换动画,它**在startActivity()或者finish()函数之后调用**
45+
46+
![这里写图片描述](http://img.blog.csdn.net/20160408111715900)
47+
48+
它有两个参数,
49+
enterAnim是下一界面进入效果的xml文件的id,
50+
exitAnim是当前界面退出效果的xml文件id。
51+
52+
> 我们可以看出它也实现了第一种方式的四种动画情况。
53+
54+
注意:
55+
56+
- 当我们不想要动画时,设置为 0 即可。
57+
- 我们可以看出这个方法是定义在android.app.Activity下的,如果我们用自定义的view或fragment等嵌入到Activity中,调用这个函数时很可能不起作用。一般改写为this.getParent().overridePendingTransition 就可以解决。
58+
59+
3 .上 res/anim 下的各种动画文件
60+
61+
zoomin.xml:
62+
63+
```
64+
<?xml version="1.0" encoding="utf-8"?>
65+
<set xmlns:android="http://schemas.android.com/apk/res/android"
66+
android:interpolator="@android:anim/decelerate_interpolator">
67+
68+
<scale android:fromXScale="0.1"
69+
android:toXScale="1.0"
70+
android:fromYScale="0.1"
71+
android:toYScale="1.0"
72+
android:pivotX="50%p"
73+
android:pivotY="50%p"
74+
android:duration="300" />
75+
76+
<alpha
77+
android:fromAlpha="0.1"
78+
android:toAlpha="1.0"
79+
android:duration="300" />
80+
</set>
81+
```
82+
zoomout.xml
83+
84+
```
85+
<?xml version="1.0" encoding="utf-8"?>
86+
<set xmlns:android="http://schemas.android.com/apk/res/android"
87+
android:interpolator="@android:anim/decelerate_interpolator"
88+
android:zAdjustment="top">
89+
90+
<scale android:fromXScale="1.0"
91+
android:toXScale=".5"
92+
android:fromYScale="1.0"
93+
android:toYScale=".5"
94+
android:pivotX="50%p"
95+
android:pivotY="50%p"
96+
android:duration="300" />
97+
98+
<alpha android:fromAlpha="1.0"
99+
android:toAlpha="0"
100+
android:duration="300"/>
101+
</set>
102+
```
103+
out_from_right.xml
104+
105+
```
106+
<?xml version="1.0" encoding="utf-8"?>
107+
108+
<translate xmlns:android="http://schemas.android.com/apk/res/android"
109+
android:duration="500"
110+
android:fromXDelta="0"
111+
android:fromYDelta="0"
112+
android:toXDelta="100%p"
113+
android:toYDelta="0" >
114+
115+
</translate>
116+
```
117+
118+
in_from_left.xml
119+
120+
```
121+
<?xml version="1.0" encoding="utf-8"?>
122+
123+
<translate xmlns:android="http://schemas.android.com/apk/res/android"
124+
android:duration="500"
125+
android:fromXDelta="-100%p"
126+
android:fromYDelta="0"
127+
android:toXDelta="0"
128+
android:toYDelta="0" >
129+
130+
</translate>
131+
```
132+
out_from_left.xml
133+
134+
```
135+
<?xml version="1.0" encoding="utf-8"?>
136+
137+
<translate xmlns:android="http://schemas.android.com/apk/res/android"
138+
android:duration="500"
139+
android:fromXDelta="0"
140+
android:fromYDelta="0"
141+
android:toXDelta="-100%p"
142+
android:toYDelta="0" >
143+
144+
</translate>
145+
```
146+
147+
in_from_right.xml
148+
149+
```
150+
<?xml version="1.0" encoding="utf-8"?>
151+
<translate xmlns:android="http://schemas.android.com/apk/res/android"
152+
android:duration="500"
153+
android:fromXDelta="100%p"
154+
android:fromYDelta="0"
155+
android:toXDelta="0"
156+
android:toYDelta="0" >
157+
158+
</translate>
159+
```
160+
fade.xml
161+
162+
```
163+
<?xml version="1.0" encoding="utf-8"?>
164+
165+
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
166+
android:interpolator="@android:anim/accelerate_interpolator"
167+
android:fromAlpha="0.0" android:toAlpha="1.0"
168+
android:duration="2000" />
169+
170+
```
171+
172+
hold.xml
173+
174+
```
175+
<?xml version="1.0" encoding="utf-8"?>
176+
177+
<translate xmlns:android="http://schemas.android.com/apk/res/android"
178+
android:interpolator="@android:anim/accelerate_interpolator"
179+
android:fromXDelta="0" android:toXDelta="0"
180+
android:duration="2000" />
181+
182+
```
183+
hyperspace_in.xml
184+
185+
```
186+
<?xml version="1.0" encoding="utf-8"?>
187+
188+
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
189+
android:fromAlpha="0.0"
190+
android:toAlpha="1.0"
191+
android:duration="2000"
192+
android:startOffset="1200" />
193+
194+
```
195+
196+
hyperspace_out.xml
197+
198+
```
199+
<?xml version="1.0" encoding="utf-8"?>
200+
201+
202+
<set xmlns:android="http://schemas.android.com/apk/res/android"
203+
android:shareInterpolator="false">
204+
<scale android:interpolator="@android:anim/accelerate_decelerate_interpolator"
205+
android:fromXScale="1.0"
206+
android:fromYScale="1.0"
207+
android:toYScale="0.6"
208+
android:pivotX="50%"
209+
android:pivotY="50%"
210+
android:duration="2000" />
211+
212+
<set android:interpolator="@android:anim/accelerate_interpolator"
213+
android:startOffset="700">
214+
<scale android:fromXScale="1.4"
215+
android:toXScale="0.0"
216+
android:toYScale="0.0"
217+
android:pivotX="50%"
218+
android:pivotY="50%"
219+
android:duration="2000" />
220+
<rotate android:fromDegrees="0"
221+
android:toDegrees="-45"
222+
android:pivotX="50%"
223+
android:pivotY="50%"
224+
android:duration="2000" />
225+
</set>
226+
</set>
227+
228+
229+
```
230+
alpha_action.xml
231+
232+
```
233+
<?xml version="1.0" encoding="utf-8"?>
234+
<set xmlns:android="http://schemas.android.com/apk/res/android" >
235+
<alpha android:fromAlpha="1.0"
236+
android:toAlpha="0"
237+
android:duration="2000"/>
238+
<!-- 透明度控制动画效果 alpha
239+
0.0表示完全透明
240+
1.0表示完全不透明
241+
以上值取0.0-1.0之间的float数据类型的数字
242+
243+
244+
-->
245+
</set>
246+
```
247+
scale_action.xml
248+
249+
```
250+
<?xml version="1.0" encoding="utf-8"?>
251+
<set xmlns:android="http://schemas.android.com/apk/res/android">
252+
<scale android:interpolator="@android:anim/accelerate_decelerate_interpolator"
253+
android:fromXScale="0.0"
254+
android:toXScale="1.4"
255+
android:fromYScale="0.0"
256+
android:toYScale="1.4"
257+
android:pivotX="50%"
258+
android:pivotY="50%"
259+
android:fillAfter="false"
260+
android:duration="2000" />
261+
</set>
262+
```
263+
264+
scale_rotate.xml
265+
266+
```
267+
<?xml version="1.0" encoding="utf-8"?>
268+
<!-- android:duration="@android:integer/config_mediumAnimTime" -->
269+
<set xmlns:android="http://schemas.android.com/apk/res/android"
270+
android:shareInterpolator="false">
271+
<scale android:interpolator="@android:res/anim/accelerate_decelerate_interpolator"
272+
android:fromXScale="0.0"
273+
android:toXScale="1.0"
274+
android:fromYScale="0.0"
275+
android:toYScale="1.0"
276+
android:pivotX="50%"
277+
android:pivotY="50%"
278+
android:duration="2000"
279+
android:repeatCount="0"
280+
android:startOffset="20"></scale>
281+
282+
<rotate android:interpolator="@android:anim/accelerate_decelerate_interpolator"
283+
android:fromDegrees="0"
284+
android:toDegrees="+355"
285+
android:pivotX="50%"
286+
android:pivotY="50%"
287+
android:duration="2000" />
288+
</set>
289+
290+
```
291+
292+
scale_translate.xml
293+
294+
```
295+
<?xml version="1.0" encoding="utf-8"?>
296+
<!-- android:duration="@android:integer/config_mediumAnimTime" -->
297+
<set xmlns:android="http://schemas.android.com/apk/res/android"
298+
android:shareInterpolator="false">
299+
<scale android:interpolator="@android:res/anim/accelerate_decelerate_interpolator"
300+
android:fromXScale="0.0"
301+
android:toXScale="1.0"
302+
android:fromYScale="0.0"
303+
android:toYScale="1.0"
304+
android:pivotX="0"
305+
android:pivotY="0"
306+
android:duration="2000"
307+
android:repeatCount="0"
308+
android:startOffset="0"></scale>
309+
310+
<translate android:fromXDelta="0"
311+
android:toXDelta="0"
312+
android:fromYDelta="0"
313+
android:toYDelta="0"
314+
android:duration="2000" />
315+
</set>
316+
317+
```
318+
scale_translate_rotate.xml
319+
320+
```
321+
<?xml version="1.0" encoding="utf-8"?>
322+
<!-- android:duration="@android:integer/config_mediumAnimTime" -->
323+
<set xmlns:android="http://schemas.android.com/apk/res/android"
324+
android:shareInterpolator="false">
325+
<scale android:interpolator="@android:res/anim/accelerate_decelerate_interpolator"
326+
android:fromXScale="0.0"
327+
android:toXScale="1.0"
328+
android:fromYScale="0.0"
329+
android:toYScale="1.0"
330+
android:pivotX="50%"
331+
android:pivotY="50%"
332+
android:duration="2000"></scale>
333+
334+
<translate android:interpolator="@android:anim/accelerate_decelerate_interpolator"
335+
android:fromXDelta="120"
336+
android:toXDelta="30"
337+
android:fromYDelta="30"
338+
android:toYDelta="250"
339+
android:duration="2000" />
340+
341+
<rotate android:interpolator="@android:anim/accelerate_decelerate_interpolator"
342+
android:fromDegrees="0"
343+
android:toDegrees="+355"
344+
android:pivotX="50%"
345+
android:pivotY="50%"
346+
android:duration="2000" />
347+
</set>
348+
349+
```
350+
351+
slide_down_out.xml
352+
353+
```
354+
<?xml version="1.0" encoding="UTF-8"?>
355+
<set android:interpolator="@android:anim/accelerate_interpolator"
356+
xmlns:android="http://schemas.android.com/apk/res/android">
357+
<translate android:duration="2000"
358+
android:fromYDelta="0.0"
359+
android:toYDelta="100.0%p" />
360+
</set>
361+
```
362+
363+
wave_scale.xml
364+
365+
```
366+
<?xml version="1.0" encoding="utf-8"?>
367+
368+
<set xmlns:android="http://schemas.android.com/apk/res/android"
369+
android:interpolator="@android:anim/accelerate_interpolator">
370+
<alpha android:fromAlpha="0.0"
371+
android:toAlpha="1.0"
372+
android:duration="2000" />
373+
374+
<scale android:fromXScale="0.5"
375+
android:toXScale="1.5"
376+
android:fromYScale="0.5"
377+
android:toYScale="1.5"
378+
android:pivotX="50%"
379+
android:pivotY="50%"
380+
android:duration="2000" />
381+
382+
<scale android:fromXScale="1.5"
383+
android:toXScale="1.0"
384+
android:fromYScale="1.5"
385+
android:toYScale="1.0"
386+
android:pivotX="50%"
387+
android:pivotY="50%"
388+
android:startOffset="200"
389+
android:duration="2000" />
390+
</set>
391+
392+
```

0 commit comments

Comments
 (0)