补间动画的实现
来源:互联网 发布:古装剧知乎 编辑:程序博客网 时间:2024/04/30 15:29
public class MainActivity extends Activity { private ImageView img_view; private AlphaAnimation animation; private AlphaAnimation alpha; private ScaleAnimation scaleAnimation; private TranslateAnimation transalte; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); img_view = (ImageView) findViewById(R.id.img_view); // codeAlpha(); // initAlpha(); // 监听 img_view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // scaleAnimtion(); // codeScaleAnim(); // transalteAnim(); // codeTransaleAnim(); // rotateAnim(); // codeRotateAnim(); // groupAnim(); codeGroupAnim(); } }); } // 1.利用xml实现渐变的补间动画 private void initAlpha() { alpha = (AlphaAnimation) AnimationUtils.loadAnimation (MainActivity.this, R.anim.lapha_two); img_view.startAnimation(alpha); /* * <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="5000" xmlns:android="http://schemas.android.com/apk/res/android"> </alpha>*/ } // 1.用代码实现渐变的补间动画 private void codeAlpha() { animation = new AlphaAnimation(0.0f, 1.0f); // 持续的时间 animation.setDuration(5000); // img_view.startAnimation(animation); } // 2.用xml实现缩放 private void scaleAnimtion() { scaleAnimation = (ScaleAnimation) AnimationUtils.loadAnimation( MainActivity.this, R.anim.scale_anim); img_view.startAnimation(scaleAnimation); /* XML实现缩放 * <scale android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="0.0" android:toYScale="1.0" android:pivotX="0.5" android:pivotY="0.5" android:duration="1000" xmlns:android="http://schemas.android.com/apk/res/android"> </scale>*/ } // 2.用代码实现的缩放 private void codeScaleAnim() { ScaleAnimation scale = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scale.setDuration(1000); img_view.startAnimation(scale); } // 3.用xml实现平移 private void transalteAnim() { transalte = (TranslateAnimation) AnimationUtils.loadAnimation( MainActivity.this, R.anim.translate_anim); img_view.startAnimation(transalte); /* XML实现的平移 * <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0.0" android:toXDelta="0.0" android:fromYDelta="0.0" android:toYDelta="50%" android:duration="1000" android:repeatCount="-1" android:repeatMode="reverse" > </translate>*/ } // 3.用代码实现平移 private void codeTransaleAnim() { float toYValue; TranslateAnimation transalte2 = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0f); // 无限循环 transalte2.setRepeatCount(-1); // REVERSE往返循环 transalte2.setRepeatMode(Animation.REVERSE); transalte2.setDuration(1000); img_view.startAnimation(transalte2); } // 4.用xml实现旋转 private void rotateAnim() { RotateAnimation rotate = (RotateAnimation) AnimationUtils .loadAnimation(MainActivity.this, R.anim.rotate_anim); img_view.startAnimation(rotate); /* Xml定义 * <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0.0" android:toDegrees="90" android:pivotX="50%" android:pivotY="50%" android:duration="2000" > </rotate>*/ } // 4.用代码实现旋转 private void codeRotateAnim() { RotateAnimation rotate2 = new RotateAnimation(0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotate2.setDuration(2000); img_view.startAnimation(rotate2); } // 5.用xml实现的组合状态 private void groupAnim() { AnimationSet group = (AnimationSet) AnimationUtils.loadAnimation( MainActivity.this, R.anim.group_anim); img_view.startAnimation(group); /* * anima包下的 <set <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:fromXScale="0.0" android:toXScale="1.5" android:fromYScale="0.0" android:toYScale="1.5" android:duration="2000" /> <rotate android:fromDegrees="0.0" android:toDegrees="360" android:pivotX="50%" android:pivotY="50%" android:duration="3000" /> </set> */ } // 5.用代码实现的组合状态 private void codeGroupAnim() { AnimationSet animationSet = new AnimationSet(false); // 旋转 RotateAnimation rotates = new RotateAnimation(0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotates.setDuration(2000); // 缩放 ScaleAnimation scales = new ScaleAnimation(0f, 1.5f, 0f, 1.5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scales.setDuration(3000); // 将动画添加到动画集合中 animationSet.addAnimation(rotates); animationSet.addAnimation(scales); // 开启 img_view.startAnimation(animationSet); }}
0 0
- 补间动画的实现
- 补间动画的实现
- 补间动画的实现
- 补间动画的实现
- 补间动画的实现
- 补间动画--实现飞舞的蝴蝶
- 补间动画(Tween)的实现
- android补间动画(Tween)的实现
- 补间动画实现折叠的效果
- 补间动画(Tween)的实现
- 补间动画的实现 ObjectAnimator类
- 补间动画的实现步骤
- 补间动画实现Activity的动画跳转
- 代码实现补间动画
- 补间动画代码实现
- Android开发(26)--补间动画(Tween)的实现
- Android开发(26)--补间动画(Tween)的实现
- 补间动画的bug
- Linux dirname、basename 指令
- ubuntu16.04下chrome安装flash插件
- JAVA阿里规范手册
- 07访问网络文件系统
- 关于mysql 的错误:Access denied for user 'root'@'101.81.76.97' (using password: YES)
- 补间动画的实现
- 欢迎使用CSDN-markdown编辑器
- DAO
- Java集合之List接口
- C#设计模式总结
- new与delete
- 《Cracking the Coding Interview程序员面试金典》----另类加法(不得使用+-x/运算符号)
- bzoj1560: [JSOI2009]火星藏宝图
- [分治]-集合划分问题 [分治]-逆序对问题