属性动画之☞valueanimator
来源:互联网 发布:51单片机项目外包网 编辑:程序博客网 时间:2024/06/05 11:56
//valueanimator实现的动画 //不需要设置操作的属性,这就是和objectanimator的区别 //好处,不需要操作对象的属性,一定要有getter和settter方法,可以根据当前动画的计算值,来操作任何属性 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); id_ball = (ImageView) findViewById(R.id.id_ball); //获取屏幕的高度 DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); heightPixels = displayMetrics.heightPixels; id_ball.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast .makeText(MainActivity.this,"123",Toast.LENGTH_SHORT).show(); } }); } // 抛物线 public void paowuxian(View view) { //获取动画执行类, ValueAnimator valueAnimator = new ValueAnimator(); //设置动画执行时间 valueAnimator.setDuration(3000); //设置起始点 valueAnimator.setObjectValues(new PointF(0, 0)); //设置类型估值 valueAnimator.setEvaluator(new TypeEvaluator<PointF>() { @Override public PointF evaluate(float v, PointF pointF, PointF t1) { PointF point = new PointF(); point.x = 200 * v * 2; point.y = 0.5f * 200 * (v * 3) * (v * 2); return point; } }); valueAnimator.start(); valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { PointF point = (PointF) animation.getAnimatedValue(); id_ball.setX(point.x); id_ball.setY(point.y); } }); } public void verticalRun(View view){ //垂直//参数一:X起始位置,,参数二Y起始位置 ValueAnimator animator = ValueAnimator.ofFloat(0, heightPixels - id_ball.getHeight()); animator.setTarget(id_ball); animator.setDuration(3000).start();// animator.setInterpolator(value) animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { id_ball.setTranslationY((Float) animation.getAnimatedValue()); } }); } public void bei(View view){ }}<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.valueanimator.MainActivity"> <ImageView android:id="@+id/id_ball" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="verticalRun" android:text="垂直"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="paowuxian" android:text="抛物线"/> </LinearLayout></RelativeLayout>
阅读全文
0 0
- 属性动画之☞valueanimator
- 属性动画之ValueAnimator
- 属性动画之ValueAnimator
- Android属性动画之ValueAnimator
- 属性动画基础之ValueAnimator
- Android属性动画之ValueAnimator
- Android 动画之属性动画ValueAnimator
- Android属性动画之ValueAnimator使用
- Android属性动画之 一、 ValueAnimator
- android 属性动画(ValueAnimator)
- 属性动画二--ValueAnimator
- ValueAnimator属性动画
- Android属性动画 ValueAnimator
- Android 动画之属性动画ValueAnimator和ObjectAnimator
- 笔记之android动画 初识ValueAnimator 属性动画
- android 动画 属性动画 ValueAnimator
- Android属性动画Property Animation系列一之ValueAnimator
- Android属性动画Property Animation系列一之ValueAnimator
- 拓扑序列_邻接矩阵实现(Topological sequence)
- Java中substring、split、StringTokenizer三种截取字符串方法的性能比较
- HDU OJ 2005 第几天?
- 洛谷 P3372 【模板】线段树 1
- 初学c++の命名空间
- 属性动画之☞valueanimator
- Linux下使用mysql遇到的问题
- C和C++中的名字空间和作用域
- 没有配置监听器,加载器,和加载文件类时怎么得到bean
- iOS 8苹方体使用说明
- POJ3280 Cheapest Palindrome (区间dp)
- Binary_Code 2-SAT神题
- 欢迎使用CSDN-markdown编辑器
- String、Stringbuffer、Stringbuilder的区别