首页 > 代码库 > 动画 -- 按钮 -- 左右晃动

动画 -- 按钮 -- 左右晃动

 1 import android.view.animation.Animation; 2 import android.view.animation.Transformation; 3  4 public class CustomAnim extends Animation { 5      6     @Override   // 获取目标对象的宽高和容器的宽高。 7     public void initialize(int width, int height, int parentWidth, 8             int parentHeight) { 9         10         super.initialize(width, height, parentWidth, parentHeight);11     }12     13     @Override14     protected void applyTransformation(float interpolatedTime, Transformation t) {15 // interpolatedTime 从0到1,等动画执行完毕后就会变成1。t 变化对象。16 //        System.out.println(interpolatedTime);17 //        t.setAlpha(interpolatedTime);18         // interpolatedTime 补间动画19 //        t.getMatrix().setTranslate(200*interpolatedTime, 200*interpolatedTime);20         // 左右摇摆动画(*20运动速度周期  *50表示左右摇摆幅度增大。)21         t.getMatrix().setTranslate((float) (Math.sin(interpolatedTime*20)*50), 0);22         23         super.applyTransformation(interpolatedTime, t);24     }25     26 }

 

import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;public class MainActivity extends Activity {    private CustomAnim ca;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ca = new CustomAnim();        ca.setDuration(1000);        findViewById(R.id.btnAnimMe).setOnClickListener(                new View.OnClickListener() {                    @Override                    public void onClick(View arg0) {                        arg0.startAnimation(ca);                    }                });    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }}

 

动画 -- 按钮 -- 左右晃动