一、特效一:首页动画自动渐入动效
二、原理:View 动画
三、代码:
1)res\anim\fade_in
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
>
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
/>
</set>
2)res\anim\fade_out
<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@interpolator/accelerate_quad"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="@android:integer/config_mediumAnimTime"
/>
3)activity关键代码
try { //考虑兼容性,用反射去做。其实没必要考虑2.0以下了
activityClass = Class.forName("android.app.Activity");
overrideAnimation = activityClass.getDeclaredMethod(
"overridePendingTransition", paramTypes);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(LoginActivity.this,
HomeActivity.class);
startActivity(i);
finish();
if (overrideAnimation != null) {
try {
overrideAnimation.invoke(LoginActivity.this, android.R.anim.fade_in,
android.R.anim.fade_out);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
},4000);
主要是通过activity的overridePendingTransition方法实现的,只不过先尝试去获取这个方法。算是一种兼容性的不错方案。mark一下。
正常不考虑兼容性的话,直接在startactivity后面调用overridePendingTransition(渐入动画,渐出动画)方法即可。
四、view动画(补间动画)
4.1)补间动画一、大小缩放变化scale
1)先看一个横向逐渐变大的效果:
然并卵,主要用来说明原理。
2)代码如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000">
<scale
android:fromXScale="0.0"
android:fromYScale="1.0"
android:toXScale="1.0"
android:toYScale="1.0"
android:pivotY="50%"
android:pivotX="50%"/>
</set>
3)动画的使用代码:
public class MainActivity extends Activity {
private ImageView id_ball;
private Button mButton;
private TextView hello_world;
private