public class MainActivity extends AppCompatActivity {
//蝴蝶初始位置
private float curx = 0;
private float cury = 0;
//蝴蝶飞到下一个点的位置
float nextx = 0;
float nexty = 0;
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.butterfly);
curx = imageView.getX();
cury = imageView.getY();
Log.i("mydate" , curx +" " + cury);
final AnimationDrawable butterfly = (AnimationDrawable) imageView.getBackground();
butterfly.start(); //一开始就执行震动翅膀的逐帧动画
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN){
nextx = event.getX();
nexty = event.getY();
TranslateAnimation anim = new TranslateAnimation(curx , nextx , cury , nexty);
anim.setDuration(5000);
anim.setFillAfter(true);
imageView.startAnimation(anim); //从一点飞向另一点的补间动画
curx = nextx;
cury = nexty;
}
return true;
}
}
逐帧动画与补间动画的结合简单使用-蝴蝶飞舞
最新推荐文章于 2024-07-22 14:52:02 发布