Tween动画:
通过对View的内容进行一系列的图形变换来实现动画效果,平移,缩放,旋转,透明度
xml/编码实现这个效果
1、透明度改变效果
————————
在res-anim文件夹下新建xml文件
<alpha
android:fromAlpha="float"//设置刚开始时的透明度值float:0-1
android:toAlpha="float"//结束时的
android:duration="4000"//动画时间
/>
————main————
Animation animation = AnimationUtils.loadAnimation(this, R.anim.toumingdu);
image.setAnimation(animation);
2、平移动画效果fromXDelta toXDelta——对物体原来所在位置相比的,原来的位置为0像素
——————————
<translate
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100"
android:toYDelta="100"
android:duration="5000"
/>
出现:平移一次后回到原点
animation.setFillAfter(true);加上这个就会停留在动画结束的位置
3、缩放 fromXScale toXScale 缩放比例,与原来的大小相比的 privotX放大的参考点:x y 50%中心点
————————
<scale
android:fromXScale="1"
android:fromYScale="1"
android:toXScale="5"
android:toYScale="5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"
/>
4、旋转rotate fromDegrees="float"物体所在的角度 privotX
————————
<rotate
android:fromDegrees="0"
android:toDegrees="180"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"
/>
Frame动画:
res/drawable/frame--xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">//false表示不断循环
<item android:drawable="@drawable/a" android:duration="200" />
<item android:drawable="@drawable/b" android:duration="200" />
<item android:drawable="@drawable/c" android:duration="200" />
<item android:drawable="@drawable/d" android:duration="200" />
<item android:drawable="@drawable/e" android:duration="200" />
<item android:drawable="@drawable/f" android:duration="200" />
<item android:drawable="@drawable/g" android:duration="200" />
<item android:drawable="@drawable/h" android:duration="200" />
</animation-list>
帧动画属于动画类的图形
text = (TextView) findViewById(R.id.text);
text.setBackgroundResource(R.drawable.frame);//绑定frame动画图形
drawable = (AnimationDrawable) text.getBackground();//取得帧动画图形
//为了保证绑定了frame动画之后才启动动画需要用到主线程的消息队列
getMainLooper().myQueue().addIdleHandler(new IdleHandler() {
@Override
public boolean queueIdle() {
drawable.start();
return false;
}
});
通过对View的内容进行一系列的图形变换来实现动画效果,平移,缩放,旋转,透明度
xml/编码实现这个效果
1、透明度改变效果
————————
在res-anim文件夹下新建xml文件
<alpha
android:fromAlpha="float"//设置刚开始时的透明度值float:0-1
android:toAlpha="float"//结束时的
android:duration="4000"//动画时间
/>
————main————
Animation animation = AnimationUtils.loadAnimation(this, R.anim.toumingdu);
image.setAnimation(animation);
2、平移动画效果fromXDelta toXDelta——对物体原来所在位置相比的,原来的位置为0像素
——————————
<translate
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100"
android:toYDelta="100"
android:duration="5000"
/>
出现:平移一次后回到原点
animation.setFillAfter(true);加上这个就会停留在动画结束的位置
3、缩放 fromXScale toXScale 缩放比例,与原来的大小相比的 privotX放大的参考点:x y 50%中心点
————————
<scale
android:fromXScale="1"
android:fromYScale="1"
android:toXScale="5"
android:toYScale="5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"
/>
4、旋转rotate fromDegrees="float"物体所在的角度 privotX
————————
<rotate
android:fromDegrees="0"
android:toDegrees="180"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"
/>
——第二种方法——采用编码的方法实现旋转———
Animation animation = new RotateAnimation(0, 180, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animation.setDuration(5000);
//该方法用于设置一个动画效果执行完毕后,View对象保留在终止的位置
animation.setFillAfter(true);
image.setAnimation(animation);
Frame动画:
res/drawable/frame--xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">//false表示不断循环
<item android:drawable="@drawable/a" android:duration="200" />
<item android:drawable="@drawable/b" android:duration="200" />
<item android:drawable="@drawable/c" android:duration="200" />
<item android:drawable="@drawable/d" android:duration="200" />
<item android:drawable="@drawable/e" android:duration="200" />
<item android:drawable="@drawable/f" android:duration="200" />
<item android:drawable="@drawable/g" android:duration="200" />
<item android:drawable="@drawable/h" android:duration="200" />
</animation-list>
帧动画属于动画类的图形
text = (TextView) findViewById(R.id.text);
text.setBackgroundResource(R.drawable.frame);//绑定frame动画图形
drawable = (AnimationDrawable) text.getBackground();//取得帧动画图形
//为了保证绑定了frame动画之后才启动动画需要用到主线程的消息队列
getMainLooper().myQueue().addIdleHandler(new IdleHandler() {
@Override
public boolean queueIdle() {
drawable.start();
return false;
}
});