项目需求:要求实现文字滚动的效果,考虑到在android 中对动画的实现有Tween和Flame两种方式,查阅资料以后发现还是需要使用Tween的方式,写了一个工具类AnimUtil,通过调用工具类实现View的动画效果,并且为了方便对View的界面更新,AnimUtil还集成自Handler。具体参考代码如下:

package com.vtion.sleb.banca.utils;import android.content.Context;import android.os.Handler;import android.view.View;import android.view.animation.Animation;import android.view.animation.Animation.AnimationListener;import android.view.animation.AnimationUtils;import com.vtion.sleb.activities.R;public class AnimUtils extends Handler implements AnimationListener {private View view;private Animation anim_right;private Animation anim_left;public AnimUtils(View view, Context context) {anim_right = AnimationUtils.loadAnimation(context, R.anim.right_in);anim_left = AnimationUtils.loadAnimation(context, R.anim.left_out);anim_right.setAnimationListener(this);anim_right.setFillAfter(true);anim_left.setFillAfter(true);this.view = view;this.view.startAnimation(anim_right);}@Overridepublic void onAnimationEnd(Animation animation) {this.postDelayed(new Runnable() {@Overridepublic void run() {view.startAnimation(anim_left);}}, 2000);}@Overridepublic void onAnimationRepeat(Animation animation) {}@Overridepublic void onAnimationStart(Animation animation) {System.out.println();System.out.println();}}


anim文件夹下存放着和动画相关的xml配置文件:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="700"        android:fromXDelta="100%p"        android:toXDelta="50%p" />    <alpha        android:duration="700"        android:fromAlpha="0.1"        android:toAlpha="1.0" /></set>


<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="700"        android:fromXDelta="50%p"        android:toXDelta="0" />    <alpha        android:duration="700"        android:fromAlpha="1.0"        android:toAlpha="0.0" /></set>

补充:

在xml文件中对动画进行配置的各个属性介绍

Alpha:渐变透明度动画效果

Scale:渐变尺寸伸缩动画效果

Translate:移动动画效果

Rotate:旋转动画效果


  1. <!--
  2. fromXScale[float]:为动画起始时,X坐标上的伸缩尺寸,0.0表示收缩到没有
  3. fromYScale[float]:为动画起始时,Y坐标上的伸缩尺寸,0.0表示收缩到没有
  4. 1.0表示正常无伸缩
  5. 值小于1.0表示收缩
  6. 值大于1.0表示放大
  7. toXScale[float]:为动画结束时,X坐标上的伸缩尺寸
  8. toYScale[float]:为动画结束时,X坐标上的伸缩尺寸
  9. pivotX[float]:为动画相对于物件的X坐标的开始位置
  10. pivotY[float]:为动画相对于物件的X、Y坐标的开始位置
  11. 50,50%,50%p。这三种写法就分别代表了ABSOLUTE,RELATIVE_TO_SELF和RELATIVE_TO_PARENT。
  12. 属性值说明:从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置
  13. fillAfter[boolean]:当设置为true,该动画转化在动画结束后被应用
  14. startOffset[long]:动画之间的时间间隔,从上次动画停多少时间开始执行下个动画
  15. repeatCount[int]:动画的重复次数-->

interpolator:指定一个动画的插入器,用来控制动画的速度变化

fromAlpha:动画起始时透明度 0.0表示完全透明1.0表示完全不透明 以上值取0.0-1.0之间的float数据类型的数字

toAlpha:动画结束时透明度

duration:持续时间



更多相关文章

  1. Android(安卓)Drawable系列——Animation Drawable(动画实现)
  2. Android(安卓)动画 Kotlin 教程
  3. Android(安卓)Transition 页面过度动画
  4. Android:overridePendingTransition()函数介绍
  5. 属性动画和补间动画
  6. 【Android】应用启动画面
  7. android 机器人:Animations
  8. android基本动画,代码构建动画
  9. android之逐帧动画

随机推荐

  1. Android最流行的网络框架
  2. java线程相关面试题(第一版)
  3. Android(安卓)RoboGuice 使用指南(4):Lin
  4. android录音MP3格式文件
  5. Android(安卓)View ViewGroup 的measure
  6. c语言数据类型(初学)
  7. Android新特性之CardView的简单使用
  8. 阿里面试官:什么是MySQL索引,为什么要有索
  9. Android异步网络请求--AsyncHttpClient
  10. Netty中拆包和粘包问题的解决(先为明天的