[动画]android动画篇:View动画(补间动画)

本文详细介绍了Android中的View动画,包括渐入渐出、大小缩放、平移、旋转等补间动画的实现,并探讨了动画的组合、重播、插值器属性以及View动画的缺点,最后引入了属性动画的概念。
摘要由CSDN通过智能技术生成

一、特效一:首页动画自动渐入动效


二、原理: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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值