问题描述
- 应用程序中图像的位置移动问题
-
在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。
时间: 2024-09-14 09:33:59