我想将位图从X,Y移动到新的X',Y'并为其设置动画。我有一个SurfaceView作为Activity的内部类,并且SurfaceView作为线程运行并处理画布上的所有图形。如何移动位图并为其设置动画效果
这里是线程的run方法:
public void run()
{
while(threadOk == true)
{
if(!holder.getSurface().isValid())
continue;
Canvas canvas = null;
try
{
canvas = holder.lockCanvas();
letsDraw(canvas);
}
finally
{
if (canvas != null)
{
holder.unlockCanvasAndPost(canvas);
}
}
}
}
这里是letsDraw(Canvas canvas)
方法:
public void letsDraw(Canvas canvas)
{
canvas.drawARGB(255, 0, 102, 0);
canvas.drawBitmap(card.getPic(), card.getX(), card.getY(), null);
}
的card
是一个自定义类Card(Bitmap pic, float X, float Y)
的一个实例。 事情是,我知道如何处理这种情况。我想将位图“转移”几个像素,并在此过程中对其进行动画处理。
我一直在浏览YouTube上的一些教程,并让他们说这是正确的方法,因为在视图中作为一个单独的线程运行。所以你说我不应该把它作为一个线程运行? – Kajzer 2013-02-13 11:33:25
不,你在'letsDraw()'中调用了一个不需要的方法。已经有预制的方法可供您使用。但在你的情况下,如果你不想改变任何东西,你可以简单地在绘图调用结束时调用'invalidate()'。 – Synaero 2013-02-13 11:39:34