1

我想将位图从 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)。问题是,我知道如何处理这种情况。我想将位图“移动”几个像素,并在这样做的同时为其设置动画。

4

2 回答 2

1

你做错了。

是你应该做的一个例子。

基本上是为了“移动”(动画)要更新 x 和 y 坐标并重绘视图的图像。这可以通过invalidate()在绘制调用结束时简单地调用来完成。

于 2013-02-13T11:30:35.543 回答
0

我认为实现这一点的唯一方法是使用 LinearInterpolator 计算位图的 X 和 Y 位置,然后在“letsDraw”方法上绘制它。

于 2013-02-13T11:29:51.330 回答