2010-04-04 194 views
1

爲了學習一些Android開發的一個微弱的嘗試,我堅持在圖形。我的目標很簡單:在android sdk拼接瓷磚和作爲背景使用

  1. 取n個小圖像,並建立一個隨機圖像,大於屏幕有可能滾動。
  2. 有一個動畫對象走動就可以了

我已經看過了SDK中的例子,月球着陸尤其但有幾件事我完全無法繞到我的頭。我有一個鳥瞰圖計劃(在我的腦海裏看起來相當理智):

如何將拼貼合併成一個大圖像? 背景是靜態的,所以我想我應該這樣做:

  1. 請與裁判二維數組的磚
  2. 使大量可繪製並繪製磚上
  3. 在初始化得出這樣的大圖像爲背景
  4. 在每次重繪OnDraw中運動物體的前一個節目在新的位置

的問題是對事物的手的背景下,和移動物體。我用「位圖img1 = BitmapFactory.decodeResource(res,R.drawable.img1)」加載小圖像,但那又如何?我應該製作一個畫布並用「canvas.drawBitmap(img1,x,y,null);」來繪製圖片嗎?如果是的話,如何從中獲取Drawable/Bitmap?我完全迷失在這裏,真的很感謝一些幫助的人(當然我也會感謝一般提示,但我主要是想了解Graphics對象)。爲了讓你,親愛的讀者,看到我狼狽的水平將添加我最後絕望的嘗試:提前

Drawable drawable; 
Canvas canvas = new Canvas(); 
Bitmap img1 = BitmapFactory.decodeResource (res, R.drawable.img1); // 50 x 100 px image 
Bitmap img2 = BitmapFactory.decodeResource (res, R.drawable.img2); // 50 x 100 px image 
canvas.drawBitmap (img1, 0, 0, null); 
canvas.drawBitmap (img2, 50, 0, null); 

drawable.draw (canvas); // obviously wrong as draw == null 
this.setBackground (drawable); 

感謝

回答

0

我終於想通了,我需要平鋪一個基本問題一堆位圖一起是BitmapDrawable:

Bitmap myImage = Bitmap.createBitmap(450, 300, Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(myImage); 
Bitmap img1 = BitmapFactory.decodeResource (res, R.drawable.img1); // 50 x 100 px image 
Bitmap img2 = BitmapFactory.decodeResource (res, R.drawable.img2); // 50 x 100 px image 
canvas.drawBitmap (img1, 0, 0, null); 
canvas.drawBitmap (img2, 50, 0, null); 
this.setBackgroundDrawable(new BitmapDrawable(myImage)); 

我明明用帆布和位圖之間的關係弄錯了,我還以爲是畫布上空白屏幕上進行繪製。顯然(如果我這次是正確的)它連接到一個位圖,如果有一個可以使用它。

雖然我仍然不知道如何使用onDraw(Canvas)函數,但是這解決了我的問題。