如何在android上重用一个位图

时间:2012-11-17 01:17:46

标签: android bitmap drawable

我有以下代码:

    public void loop1(int times, SpriteObject[] obj){
        for(int i = 0; i < times; i++){
            obj[i] = new SpriteObject(BitmapFactory.decodeResource(gv.getResources(),  R.drawable.bar1), 500,720);
        }
     }

但是,当我在视图上绘制它时,它不会像我预期的那样停留。 如果我使用obj [i] .setX(10)和obj [5] .setX(20)。只有第二个出现,因为它是刷新的,只采取最后一个对象。是否可以重复使用这样的drawable?

1 个答案:

答案 0 :(得分:0)

我并不完全理解你在这里想要完成的事情,对我来说,似乎你的资源加载方法完全错误。据我所知,你试图让两个相似的位图移动。

首先,对于简单的绘图应用程序或游戏,您将使用视图或表面视图,因此您必须实现它。其次,我创建移动位图的方法是首先创建位图变量来保存相应的位图,然后为每个相应的位图创建一个单独的类。在课程中,我有以下内容。

public float x = 0; public float y = 0;

因此,考虑到这一点,您需要做的就是使用此方法在View的onDraw方法中绘制位图。 canvas.drawBitmap(bitmapVariable, bitmap.x, bitmap.y, null);

如果要移动位图,则只需更改相应位图的X和Y即可。在单独的方法或更新循环中。

最终,我认为你理解位图是错误的。一旦创建,您不需要重新创建它以在不同的位置重绘它,除非位图被垃圾收集。