zoukankan      html  css  js  c++  java
  • ObjectAnimator属性动画示例代码

    import android.animation.AnimatorSet;
    import android.animation.ObjectAnimator;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ImageView;
    import android.widget.Toast;
     
    public class MainActivity extends Activity {
     
    	private ImageView	iv;
    	private ObjectAnimator	a;
    	private ObjectAnimator	t;
    	private ObjectAnimator	r;
    	private ObjectAnimator	s;
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		iv = (ImageView) findViewById(R.id.iv);
    		iv.setOnClickListener(new OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				Toast.makeText(MainActivity.this, "点我", 0).show();
    			}
    		});
    	}
     
    	/**
    	 * 透明度
    	 */
    	public void alpha(View v) {
    		a = ObjectAnimator.ofFloat(iv, "alpha", 0, 1, 0.5f,
    				0.1f, 0.8f);
    		// 设置时间
    		a.setDuration(1000);
    		// 设置动画的重复次数
    		a.setRepeatCount(1);
    		a.start();
    	}
     
    	/**
    	 * 位移动画
    	 */
    	public void translate(View view) {
    		/**
    		 * target :座动画的目标控件 propertyName :动画的属性名 values :属性值
    		 */
    		// ObjectAnimator t = ObjectAnimator.ofFloat(iv, "translationX",
    		// 0,100,20,80,10,200);
    		
    		t = ObjectAnimator.ofFloat(iv, "translationY", 0, 100,
    				20, 80, 10, -50);
    		// 设置时间
    		t.setDuration(1000);
    		// 设置动画的重复次数
    		t.setRepeatCount(1);
    		// t.setRepeatMode(ObjectAnimator.REVERSE);
    		// 开始播放动画
    		t.start();
    	}
     
    	/**
    	 * 旋转动画
    	 */
    	public void rotate(View view) {
    		// ObjectAnimator r = ObjectAnimator.ofFloat(iv, "rotation", 0, 45, 270,
    		// ObjectAnimator r = ObjectAnimator.ofFloat(iv, "rotationX", 0, 45,
    		// 270,360, 100);
    		
    		r = ObjectAnimator.ofFloat(iv, "rotationY", 0, 45, 270,
    				360, 100);
    		// 设置时间
    		r.setDuration(1000);
    		// 设置动画的重复次数
    		r.setRepeatCount(1);
    		// t.setRepeatMode(ObjectAnimator.REVERSE);
    		// 开始播放动画
    		r.start();
    	}
     
    	/**
    	 * 缩放
    	 */
    	public void scale(View view) {
    //		ObjectAnimator s = ObjectAnimator.ofFloat(iv, "scaleX",10, 1, 0, 5,1);
    		
    		s = ObjectAnimator.ofFloat(iv, "scaleY",5, 1, 0, 5,1);
    		// 设置时间
    		s.setDuration(2000);
    		// 设置动画的重复次数
    		s.setRepeatCount(1);
    		// t.setRepeatMode(ObjectAnimator.REVERSE);
    		// 开始播放动画
    		s.start();
    	}
     
    	/**
    	 * 动画的合集
    	 */
    	public void set(View v) {
    		AnimatorSet set = new AnimatorSet();
    		//添加要播放的动画,一起装x一起飞
    //		set.playTogether(a,t,r,s);
    		//一个装x一个飞
    		set.playSequentially(a,t,r,s);
    		//设置目标
    		set.setTarget(iv);
    		//开始播放动画
    		set.start();
    	}
    }
    
  • 相关阅读:
    react.js 你应知道的9件事
    table的border-collapse属性与border-spacing属性
    深入理解 CSS变形 transform(3d)
    $ 的绑定事件
    保留两位小数
    数据库日期格式化
    javaScript对两个数组进行去重
    js中的原型链__proto__其实超简单!!
    JSON.parse()和JSON.stringify()应用理解
    Java Web 重归
  • 原文地址:https://www.cnblogs.com/loaderman/p/6437269.html
Copyright © 2011-2022 走看看