笔记16 Animator 安卓属性动画 三种实现方式及监听事件实现
2016-08-12 15:59
477 查看
package test.ban.com.test; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.animation.PropertyValuesHolder; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view) { Toast.makeText(this, "onClick", Toast.LENGTH_SHORT).show(); } public void move(View view) { ImageView imageView = (ImageView) findViewById(R.id.imageView); // Animation 不能响应交互 // Animator 可以响应交互 //方法一 ObjectAnimator.ofFloat(imageView,"rotation",0F,360F).setDuration(1000).start(); ObjectAnimator.ofFloat(imageView,"translationX",0F,200F).setDuration(1000).start(); ObjectAnimator.ofFloat(imageView,"translationY",0F,200F).setDuration(1000).start(); //方法二 PropertyValuesHolder p1 = PropertyValuesHolder.ofFloat("rotation", 0F, 360F); PropertyValuesHolder p2 = PropertyValuesHolder.ofFloat("translationX",0F,200F); PropertyValuesHolder p3 = PropertyValuesHolder.ofFloat("translationY",0F,200F); ObjectAnimator.ofPropertyValuesHolder(imageView,p1,p2,p3).setDuration(1000).start(); //方法三 ObjectAnimator animator1 = ObjectAnimator.ofFloat(imageView,"rotation",0F,360F); ObjectAnimator animator2 = ObjectAnimator.ofFloat(imageView,"translationX",0F,360F); ObjectAnimator animator3 = ObjectAnimator.ofFloat(imageView,"translationY",0F,360F); AnimatorSet set = new AnimatorSet(); set.playTogether(animator1,animator2,animator3); set.setDuration(1000); set.start(); //监听方式一 实现全部的接口 animator1.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { Toast.makeText(MainActivity.this, "onAnimationEnd", Toast.LENGTH_SHORT).show(); } @Override public void onAnimationCancel(Animator animation) { } @Override public void onAnimationRepeat(Animator animation) { } }); //监听方式 实现部分接口 有选择的去实现要监听的事件 animator1.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); Toast.makeText(MainActivity.this, "onAnimationEnd", Toast.LENGTH_SHORT).show(); } }); } }
相关文章推荐
- PropertyAnimation属性动画 ObjectAnimator三种方式实现
- android客户端学习-事件监听的三种实现方式
- Android实现事件监听的三种方式
- android监听事件的三种实现方式
- TextView实现带链接文字事件监听三种常用方式
- java Swing:实现事件监听的三种方式
- 监听事件的三种实现方式
- 安卓笔记android中控件点击事件实现的几种方式
- 属性动画03-animatorset和监听事件(打辅助)
- 按钮监听事件实现(三种方式实现)
- Android实现监听事件的三种方式.
- android 开发零起步学习笔记(十二):android监听事件添加动作的三种方式
- Android实现监听事件的三种方式
- Android TextView实现带链接文字事件监听的三种常用方式示例
- 安卓中关于事件处理方式以Button为例实现点击事件监听
- 笔记17 Animator 安卓属性动画 仿直线菜单 代码量极少抛弃使用animation
- Android属性动画欣赏——ObjectAnimator与动画监听事件
- 安卓笔记1:点击监听事件的实现
- 安卓自学笔记:16:通过Handler实现自动播放动画
- java Swing:实现事件监听的三种方式