Android之ObjectAnimator使用记录
常用的方法:
注意:最后一个参数为可变参数,当只传一个值时,系统会自动调用第二个参数对应的get方法来获取初始值,若没有对应的get方法,则会使用对应变量的默认值没初始值。
public static ObjectAnimator ofFloat(Object target, String propertyName, float... values)
public static ObjectAnimator ofInt(Object target, String propertyName, int... values)
public static ObjectAnimator ofObject(Object target, String propertyName,TypeEvaluator evaluator, Object... values)
常用参数:
1、透明度:
alpha 0~1之间的值
2、旋转度数:
rotation: 绕Z轴旋转
rotationX: 绕X轴旋转
rotationY: 绕Y轴旋转
3、平移:
translationX: X轴平移
translationY: Y轴平移
4、缩放:
scaleX: 缩放X轴
scaleY: 缩放Y轴
自定义一个ObjectAnimator的属性:
一:我们需要定义一个对象,如下Point,包含属性 :半径 radius 。
public class Point {
private int radius;
public Point(int radius){
this.radius= radius;
}
public int getRadius() {
return radius;
}
public void setRadius(int radius) {
this.radius= radius;
}
}
二:自定义View初始化我们的Point类,在onDraw中根据我们的Point的半径来画圆;然后定义一个函数 setPointRadius,该方法的 ‘pointRadius’ 就是我们ObjectAnimator 的属性。
public class CircleView extends View {
private Point point = new Point(100);
private Paint paint = new Paint();
private int centerX = 100;
private int centerY = 100;
public CircleView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
if (mPoint != null){
paint.setAntiAlias(true);
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(centerX, centerY, point.getRadius(), paint);
}
super.onDraw(canvas);
}
/**
第一点,这个set函数所相应的属性应该是pointRadius或者PointRadius。前面我们已经讲了第一
个字母大写和小写无所谓,后面的字母必须保持与set函数全然一致。
第二点,在setPointRadius中,先将当前动画传过来的值保存到point中。做为当前圆形的半径。
第三点,invalidate(),强制界面刷新,在界面刷新后。就開始运行onDraw()函数。
*/
void setPointRadius(int radius){
point.setRadius(radius);
invalidate();
}
}
三:初始化ObjectAnimator , 并启动动画。
ObjectAnimator animator = ObjectAnimator.ofInt(view, "pointRadius", 100, 300, 100);
animator.setDuration(2000);
animator.start();
四:我们通过 addListener 添加动画状态的监听。
animator.addListener(new AnimatorListenerAdapter() {
//包含相关的回掉方法
});
以上为ObjectAnimator 动画的基本使用方法。
上一篇: Android动画之Animation和Animator
下一篇: Python爬虫 爬取翻译类网站
推荐阅读
-
android 之 Java 泛型通配符T的使用
-
Android属性动画Property Animation系列一之ObjectAnimator_html/css_WEB-ITnose
-
Android开发之使用ExifInterface获取拍照后的图片属性
-
Android数据存储之SQLite使用
-
Android开发之使用GridView展示图片的方法
-
Android开发之使用通知栏显示提醒信息的方法
-
Android之listfragment的使用例子
-
Android之Gallery使用例子
-
Android开发之ImageLoader使用详解
-
Android开发之缓冲dialog对话框创建、使用与封装操作