Android 属性动画
来源:互联网 发布:重生之网络娱乐无错 编辑:程序博客网 时间:2024/06/03 10:18
//第一种写法
//参数 1,要进行动画的控件2 设置动画属性3属性值 开始到结束
ObjectAnimator.ofFloat(mImageView, "translationX", x).setDuration(100).start();ObjectAnimator.ofFloat(mImageView, "translationY", y).setDuration(100).start();ObjectAnimator.ofFloat(mImageView, "rotation", 0F, 360F).setDuration(100).start();
//第二种写法
PropertyValuesHolder p1=PropertyValuesHolder.ofFloat("translationX", 0F, 360F);PropertyValuesHolder p2=PropertyValuesHolder.ofFloat("translationY", 0F, 360F);PropertyValuesHolder p3=PropertyValuesHolder.ofFloat("rotation", 0F, 360F);ObjectAnimator.ofPropertyValuesHolder(mImageView, p1,p2,p3).setDuration(1000).start();
//第三种写法
ObjectAnimator ObjectAnimator1=ObjectAnimator.ofFloat(mImageView, "translationX", 0F, 360F);ObjectAnimator ObjectAnimator2=ObjectAnimator.ofFloat(mImageView, "translationY", 0F, 360F);ObjectAnimator ObjectAnimator3=ObjectAnimator.ofFloat(mImageView, "rotation", 0F, 360F);AnimatorSet set = new AnimatorSet();//set.playTogether(ObjectAnimator1,ObjectAnimator2,ObjectAnimator3);//动画同时播放//set.playSequentially(ObjectAnimator1,ObjectAnimator2,ObjectAnimator3);//动画顺序播放set.play(ObjectAnimator1).with(ObjectAnimator2); //自定义动画顺序 1和2同时执行set.play(ObjectAnimator3).after(ObjectAnimator1); //1完成后执行3set.setDuration(1000);set.start();
-------------------------------------------------------------------------------------------动画监听事件-------------------------------------------------------------------------------------------------
//动画事件监听
mImageView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//Random r=new Random();//int x = r.nextInt(display.getWidth()-mImageView.getWidth()); //int y = r.nextInt(display.getHeight()-mImageView.getHeight()); //ObjectAnimator.ofFloat(mImageView, "translationX", x).setDuration(100).start();//ObjectAnimator.ofFloat(mImageView, "translationY", y).setDuration(100).start();//ObjectAnimator.ofFloat(mImageView, "rotation", 0F, 360F).setDuration(100).start();ObjectAnimator ObjectAnimator1=ObjectAnimator.ofFloat(mImageView, "alpha", 0,1,0,1,0,1,0,1,0,1); ObjectAnimator1.setDuration(10000);ObjectAnimator1.addListener(new AnimatorListener() {@Overridepublic void onAnimationStart(Animator animation) {mTextView.setText("动画已经开始");}@Overridepublic void onAnimationRepeat(Animator animation) {mTextView.setText("动画运行中");}@Overridepublic void onAnimationEnd(Animator animation) {mTextView.setText("动画已经结束");}@Overridepublic void onAnimationCancel(Animator animation) {mTextView.setText("动画已经注销");}});ObjectAnimator1.start();}});
//弹动菜单代码
int NoType=0;int[] res = {R.id.a,R.id.b,R.id.c,R.id.d,R.id.e,R.id.f,R.id.g,R.id.h};List<ImageView> List = new ArrayList<ImageView>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_menum);for (int i = 0; i < res.length; i++) {ImageView mImageView=(ImageView) findViewById(res[i]);mImageView.setOnClickListener(this);List.add(mImageView);}}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.a:if(NoType==0){StartAnimator();NoType=1;}else{StopAnimator();NoType=0;}break;default:break;}}private void StopAnimator() {for (int i = 1; i < res.length; i++) {ObjectAnimator ObjectAnimator1=ObjectAnimator.ofFloat(List.get(i), "translationY", 75*i,0f);ObjectAnimator1.setDuration(1000);//ObjectAnimator1.setInterpolator(new BounceInterpolator());ObjectAnimator1.setStartDelay(i*300);ObjectAnimator1.start();}}private void StartAnimator() {for (int i = 1; i < res.length; i++) {ObjectAnimator ObjectAnimator1=ObjectAnimator.ofFloat(List.get(i), "translationY", 0f,75*i);ObjectAnimator1.setDuration(1000);ObjectAnimator1.setInterpolator(new BounceInterpolator());//回弹效果ObjectAnimator1.setStartDelay(i*300);//动画速度ObjectAnimator1.start();}}
//ValueAnimator
//使用ValueAnimator 设置Button的显示值从1-100 mButton2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ValueAnimator ValueAnimator1=ValueAnimator.ofInt(0,100); ValueAnimator1.setDuration(1000); ValueAnimator1.addUpdateListener(new AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { int value=(Integer) animation.getAnimatedValue(); mButton2.setText(value+""); } }); ValueAnimator1.start(); } });
0 0
- Android动画--属性动画
- android动画 -- 属性动画
- Android动画-属性动画
- Android动画【属性动画】
- Android动画--属性动画
- android属性动画--布局动画
- Android 动画之属性动画
- Android中的动画,属性动画
- android-属性动画、视图动画
- Android动画之属性动画
- android动画 属性动画详解
- Android笔记----动画、属性动画
- Android动画之属性动画
- android 动画 之 属性动画
- Android动画之---属性动画
- Android动画之属性动画
- Android动画--属性动画--基础
- Android动画(三):属性动画
- 不要忽视免费博客潜力 提升网站权重有技巧
- iphone 开发中使用zbar时遇到的几个典型问题解决方法。
- 通过GeoIP2分析访问者IP获取地理位置信息
- 解决关闭 atrDialog 嵌入 iframe 页面,重定向到其他页面刷新父窗体问题
- Effective C++ 条款14
- Android 属性动画
- android中输入法隐藏显示问题
- nagios+ganglia监控系统
- 分布式事物的spring的实现
- 在合适的情况下选择多行Update方式
- R 四种线性回归模型在预测中的差别
- 坚持每天一篇小博文
- BZOJ3527 力
- JS之OOP