2013-01-05 4 views
0

나는 안드로이드를 처음 접했지만 캔바스에 내 이미지가 나타나지 않는 이유는 무엇입니까? 백그라운드 색상이 검은 색이기 때문에 제대로 작동하고 있습니다. 동일한 동일한 방법으로 변경된 onDraw입니다. 누구든지 나를 도울 수 있습니까? 미리 감사드립니다!캔버스에 이미지가 표시되지 않음

public PongView(Context context) { 
    super(context); 
    paddle1 = BitmapFactory.decodeResource(getResources(), R.drawable.pongpaddle); 
    paddle2 = BitmapFactory.decodeResource(getResources(), R.drawable.pongpaddle); 
} 
protected void onDraw(Canvas canvas) { 
    xp1 = canvas.getWidth()/2; 
    xp2 = canvas.getWidth()/2; 
    yp1 = 25; 
    yp2 = 760; 
    canvas.drawColor(Color.BLACK); 
    canvas.drawBitmap(paddle1, xp1,yp1, null); 
    canvas.drawBitmap(paddle2,xp2,yp2, null); 
    Paint white = new Paint(); 
    white.setColor(Color.WHITE); 
    canvas.drawText("Score P1:"+ p1Score +" P2: " + p2Score , 700, 20,white); 
} 
+0

canvas.getWidth() –

+0

ADB Logcat을 확인하고 예외가 발생하는지 확인하십시오. –

+0

나는 canvas.drawColor ("Color.BLACK");을 주석 처리했기 때문에 전체 메서드가 작동하지 않는다 배경이 여전히 검정색이거나 색상을 변경하면 여전히 검정색입니다. . 더 이상의 제안? –

답변

1

위의 의견을 바탕으로, 나는, 안드로이드 런타임은 캔버스에 그림입니다 무슨 일이 일어나고 있는지 생각하고 onDraw가 호출되지 않습니다. 클래스 생성자에서 this.setWillNotDraw(false)을 호출하여이를 피할 수 있습니다. 이 플래그를 지우면 onDraw()가 호출됩니다.

출처 : Android 개발자는보기의 onDraw()을 덮어 쓰면이 플래그를 지워야합니다. Check setWillNotDraw

+0

나는 당신이 말한 것과 @Override를 포함하고 그것이 효과가 있었다. –

관련 문제