2013-02-14 50 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