2013-02-14 84 views
1

我有一個叫做Preview的類,它作爲一個子元素添加到我的FrameLayouts中。這是Preview的onDraw方法。 fingerprint.png位於我的drawable文件夾中,並且android onDraw不繪製PNG

protected void onDraw(Canvas canvas) { 
    System.out.println("on draw"); 

    Resources res = getResources(); 
    fingerprint = res.getDrawable(R.drawable.fingerprint); 
    fingerprint.draw(canvas); 
    //fingerprintScaled.draw(canvas); 

} 

「on draw」打印,但指紋圖像未呈現。

+1

您可能會考慮將'getResources()'移出到構造函數或某處,因此它只會被調用一次,每次調用onDraw()時都不需要獲取新的引用。我不認爲這是你問題的根源。作爲一個故障排除步驟,也許嘗試繪製除繪圖以外的東西(形狀或線條或原始東西),以查看是否有任何東西正在繪製。這可以告訴你問題是否與你的drawable相關。 – FoamyGuy 2013-02-14 21:34:47

回答

3

它沒有繪製的原因是因爲你調用繪製錯誤。在保護無效的onDraw(帆布油畫) 做這樣的事情(除了不要解碼東西在的onDraw)

Bitmap fingerprint = BitmapFactory.decodeResource(context.getResources(),R.drawable.icon_resource); 

canvas.drawBitmap (fingerPrint, aMatrix, paintToDraw); 

這應該正確地畫出你的位圖。

+0

謝謝!這工作。 – tuna 2013-02-15 05:40:06