2012-11-17 12 views
0

位圖我有以下代碼:如何重用在Android

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?

回答

0

我不完全理解你想要什麼,在這裏完成,對我好像你的資源負載方法完全設置錯了。從我可以告訴的是,你正試圖讓兩個相似的位圖移動。

首先,簡單的繪圖應用程序或遊戲,你將使用視圖或surfaceview所以你必須實現。其次,我創建移動位圖的方式是首先創建位圖變量來保存各自的位圖,然後爲每個相應的位圖創建單獨的類。在課堂上,我有以下幾點。

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

所以考慮到這一點你必須做的繪製位圖是在你使用此方法View的方法的onDraw。 canvas.drawBitmap(bitmapVariable, bitmap.x, bitmap.y, null);

如果您想移動位圖,您只需更改相應位圖的X和Y.無論是在一個單獨的方法或更新循環。

最後,我想你理解錯了位圖。一旦創建完成,您不需要重新創建它就可以在不同的位置重繪它,除非位圖被垃圾收集。

+1

您當時不明白我的問題。我有一個代碼運行。沒有問題。我已經完成了所有這些工作。但是,我不打算在屏幕上移動位圖,而是將其放在eacher旁邊。但是它並沒有停留在屏幕上,而是沿着它移動。 想象一下X是我的位圖。我想循環並打印在屏幕上: > X第一次 > XX第二次 > XXX第三次...... 但是我得到的是: > X第一次 > X第二次 > X第三次 –

+0

你能展示一些你的代碼嗎?很難說你發佈的內容有什麼問題。什麼叫這個方法,以及這些變量是如何被實例化的將有幫助 – HoundGod

+0

只是認爲每個obj [i]都是我在屏幕上繪製的東西。首先我在x = 500,y = 720處繪製obj [0]。然後obj [1]在x = 520,y = 720,obj [2]在x = 540,y = 720等等... 即使我創建該位圖的新對象: obj [i] = new SpriteObject(BitmapFactory.decodeResource(gv.getResources(),R.drawable.bar1),500,720); 它仍然將其視爲相同的對象..我認爲它可能是與繪製位圖,而不是在我的代碼... –