2013-02-14 2 views
1

У меня есть класс под названием Preview, который добавляется как дочерний элемент в один из моих FrameLayouts. Это метод onDraw для предварительного просмотра. fingerprint.png в моей вытяжке папки, иandroid onDraw not drawing 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); 

} 

«на вытяжку» отпечатки, но изображение отпечатка пальца не отображается.

+1

Возможно, вы захотите переместить 'getResources()' out в конструктор или где-нибудь, чтобы он вызывался только один раз, не нужно получать новую ссылку каждый раз, когда вызывается onDraw(). Я не думаю, что это корень вашей проблемы. В качестве шага устранения неполадок, возможно, попытайтесь нарисовать что-то другое, кроме вашего drawable (форма или строка или что-то примитивное), чтобы увидеть, что-то вообще рисуется. Это может рассказать вам, является ли проблема с вашей возможностью вытягивания или нет. – FoamyGuy

ответ

3

Причина, по которой это не рисунок, заключается в том, что вы вызываете неправильную обратную связь. в защищенном ничтожной OnDraw (Canvas холст) сделать что-то вроде этого (кроме Dont декодировании материала в OnDraw)

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

canvas.drawBitmap (fingerPrint, aMatrix, paintToDraw); 

это должно обратить ваше растровое правильно.

+0

Спасибо! это сработало. – tuna