在Panel类中,我重写了onDraw()方法。
使用的代码:
class Panel extends View {
public Panel(Context context) {
super(context);
}
@Override
public void onDraw(Canvas canvas) {
Bitmap image1 = BitmapFactory.decodeResource(getResources(), R.drawable.btnpre);
canvas.drawColor(Color.CYAN);
canvas.drawBitmap(Image1, 10, 10, null);
Bitmap Image2 = BitmapFactory.decodeResource(getResources(), R.drawable.btnpre);
canvas.drawBitmap(Image2, 100, 100, null);
}
}
在canvas.drawBitmap()中有两个图像,现在它们的位置都是固定的。能把这两个图像从仿真器的底部移动到顶部吗?
要做动画的话,就要自己实现onDraw,然后每次移动响应的位置,也就是更改drawBitmap的x,y值,最后postInvalidate()。
移动的距离有两种方式,1是步进器,这个比较简单,但效果一般,2是用Interpolator来计算,效果比较好。
重写你的代码:canvas.drawBitmap(Image1, x, y, null);.
重写线程来改变x和y的值,在Panel.java里调用invalidate。