本文主要是介绍Android AnimationDrawable资源 set[translate,alpha,scale,rotate],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文内容摘自《疯狂Android讲义 第三版-李刚著作》
xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"android:duration="1000"android:fillAfter="true"android:fillBefore="true"android:repeatMode="reverse"android:shareInterpolator="true"android:startOffset="50"><alphaandroid:fromAlpha="125"android:toAlpha="100"/><scaleandroid:fromXScale="1.0"android:toXScale="1.4"android:fromYScale="1.0"android:toYScale="1.4"android:pivotX="50%"android:pivotY="50%"/><translateandroid:fromXDelta="10"android:toXDelta="130"android:fromYDelta="30"android:toYDelta="-80"android:duration="2000"/></set>
package shortcut.song.com.myapplication;import android.graphics.drawable.ClipDrawable;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;import java.util.Timer;
import java.util.TimerTask;public class ResourceActivity extends AppCompatActivity {ImageView imageView;Animation mAnimation; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_resource);imageView = (ImageView)findViewById(R.id.image_clip);final ClipDrawable clipDrawable = (ClipDrawable)imageView.getDrawable();mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim_1);final Handler mHandler = new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if (msg.what == 0x1234){clipDrawable.setLevel(clipDrawable.getLevel() + 180);}}};final Timer mTimer = new Timer();mTimer.schedule(new TimerTask() {@Overridepublic void run() {Message msg = new Message();msg.what = 0x1234;mHandler.sendMessage(msg);if (clipDrawable.getLevel() > 10000){mTimer.cancel();}}}, 0, 320);}public void startAnim(View v){imageView.startAnimation(mAnimation);}
}
下面的内容是摘自网友的,感谢原创的幸苦付出!!!
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
下面就讲一下Tweene Animations。
主要类:
Animation 动画
AlphaAnimation 渐变透明度
RotateAnimation 画面旋转
ScaleAnimation 渐变尺寸缩放
TranslateAnimation 位置移动
AnimationSet 动画集
一.AlphaAnimation
其中AlphaAnimation类第一个参数fromAlpha表示动画起始时的透明度, 第二个参数toAlpha表示动画结束时的透明度。
setDuration用来设置动画持续时间。
二.RotateAnimation
其中RotateAnimation类第一个参数fromDegrees表示动画起始时的角度, 第二个参数toDegrees表示动画结束时的角度。
另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y坐标的开始位置pivotXValue、pivotYValue等。
三.ScaleAnimation
ScaleAnimation类中
第一个参数fromX ,第二个参数toX:分别是动画起始、结束时X坐标上的伸缩尺寸。
第三个参数fromY ,第四个参数toY:分别是动画起始、结束时Y坐标上的伸缩尺寸。
另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y坐标的开始位置pivotXValue、pivotYValue等。
四.TranslateAnimation
第一个参数fromXDelta ,第二个参数toXDelta:分别是动画起始、结束时X坐标。
第三个参数fromYDelta,第四个参数toYDelta:分别是动画起始、结束时Y坐标。
54./*
55. * 1.创建一个AnimationSet对象,该对象存储的是动画的集合
56. * 2.根据需要创建相应的Animation对象
57. * 3.根据动画的需求,为Animation对象设置相应的数据(即执行效果)
58. * 4.奖Animation对象添加到AnimationSet对象当中
59. * 5.使用控件对象开始执行AnimationSet
60. */
61. public void Alpha() {
62. AnimationSet animationSet=new AnimationSet(true);
63. AlphaAnimation alphaAnimation=new AlphaAnimation(1, 0);
64. alphaAnimation.setDuration(2000);
65. animationSet.addAnimation(alphaAnimation);
66. imageView.startAnimation(animationSet);
67. }
68. public void Rotata(){
69. AnimationSet animationSet=new AnimationSet(true);
70. //后面的四个参数定义的是旋转的圆心位置
71. RotateAnimation rotateAnimation=new RotateAnimation(
72. 0, 360,
73. Animation.RELATIVE_TO_PARENT, 1f,
74. Animation.RELATIVE_TO_PARENT, 0f);
75. rotateAnimation.setDuration(2000);
76. animationSet.addAnimation(rotateAnimation);
77. imageView.startAnimation(animationSet);
78. }
79. public void Scale() {
80. AnimationSet animationSet=new AnimationSet(true);
81. ScaleAnimation scaleAnimation=new ScaleAnimation(
82. 1, 0.1f, 1, 0.1f,
83. Animation.RELATIVE_TO_SELF, 0.5f,
84. Animation.RELATIVE_TO_SELF, 0.5f);
85. scaleAnimation.setDuration(2000);
86. animationSet.addAnimation(scaleAnimation);
87. imageView.startAnimation(scaleAnimation);
88. }
89. public void Translate() {
90. AnimationSet animationSet=new AnimationSet(true);
91. TranslateAnimation translateAnimation=new TranslateAnimation(
92. Animation.RELATIVE_TO_SELF, 0f, //X轴的开始位置
93. Animation.RELATIVE_TO_SELF, 0.5f, //X轴的结束位置
94. Animation.RELATIVE_TO_SELF, 0f, //Y轴的开始位置
95. Animation.RELATIVE_TO_SELF, 1.0f); //Y轴的结束位置
96. translateAnimation.setDuration(2000);
97. animationSet.addAnimation(translateAnimation);
98.
99. /*
100. * 第一行的设置如果为true,则动画执行完之后效果定格在执行完之后的状态
101. * 第二行的设置如果为false,则动画执行完之后效果定格在执行完之后的状态
102. * 第三行设置的是一个long类型的值,是指动画延迟多少毫秒之后执行
103. * 第四行定义的是动画重复几次执行
104. */
105. animationSet.setFillAfter(true);
106. animationSet.setFillBefore(false);
107. animationSet.setStartOffset(2000);
108. animationSet.setRepeatCount(3);
109.
110. imageView.startAnimation(animationSet);
111. }
112. public void Alpha_Translate() {
113. AnimationSet animationSet=new AnimationSet(true);
114. AlphaAnimation alphaAnimation=new AlphaAnimation(1, 0);
115. alphaAnimation.setDuration(2000);
116. animationSet.addAnimation(alphaAnimation);
117. TranslateAnimation translateAnimation=new TranslateAnimation(
118. Animation.RELATIVE_TO_SELF, 0f, //X轴的开始位置
119. Animation.RELATIVE_TO_SELF, 0.5f, //X轴的结束位置
120. Animation.RELATIVE_TO_SELF, 0f, //Y轴的开始位置
121. Animation.RELATIVE_TO_SELF, 1.0f); //Y轴的结束位置
122. translateAnimation.setDuration(2000);
123. animationSet.addAnimation(translateAnimation);
124. imageView.startAnimation(animationSet);
125. }
126.
这篇关于Android AnimationDrawable资源 set[translate,alpha,scale,rotate]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!