2011-05-04 31 views
2

我想設置一個PNG圖像來填充我的畫布的背景,同時仍保持其縱橫比。我通過將其轉換爲位圖開始:然後使用從Canvas類的setBitmap方法設置的回地面:如何設置圖像來填充畫布

http://developer.android.com/reference/android/graphics/Canvas.html#Canvas(android.graphics.Bitmap

public class PlayOn extends View{ 

Bitmap board; 

public PlayOn(Context gamecontext) { 
    super(gamecontext);    
    board=BitmapFactory.decodeResource(getResources(),R.drawable.board_rev1); 
} 

@Override 
protected void onDraw(Canvas mycanvas) { 

    super.onDraw(mycanvas); 
    mycanvas.setBitmap(board); 

} 
} 

但是,一旦我去調用這個擴展的查看I類活動得到一個錯誤,說我的應用程序意外停止。 我也嘗試過在Canvas和Bitmap類中的其他一些功能,但似乎沒有任何工作。

請問做這件事的最好方法是什麼?我在android開發人員網站上讀到,有一種方法可以設置圖像,以便可以在其中繪製畫布和其他圖像,但我無法弄清楚如何做到這一點。

謝謝!

+0

發佈您的應用程序在崩潰時說的logcat。 – JoxTraex 2011-05-04 23:03:22

回答

1

你可能要添加一個Log.d來檢查板從位圖

BitmapFactory.decodeResource(getResources(),R.drawable.board_rev1); 

返回不爲空。但是我在幾個應用程序中使用以下內容在onDraw中的全屏視圖中繪製位圖,所以如果位圖是非空的,應該可以正常工作。

canvas.drawBitmap(mBitmap, 0, 0, null); 

而且還有drawBitmap的一個版本,它擴展,即

void canvas.drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint) 
Draw the specified bitmap, scaling/translating automatically to fill the 
destination rectangle. 

你可能想嘗試嗎?