0

私は Android にかなり慣れていませんが、キャンバスに画像が表示されないのはなぜですか? 同じ方法で 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 );  
}
4

1 に答える 1

2

上記のコメントに基づいて、何が起こっているのか、Android ランタイムがキャンバスに描画されており、onDraw呼び出されていないと思います。this.setWillNotDraw(false)これは、クラスのコンストラクターを呼び出すことで回避できます。このフラグをクリアすると、 onDraw() が呼び出されます。

出典: Android 開発者ドキュメントによると、View の をオーバーライドする場合onDraw()は、このフラグをクリアする必要があります。チェックsetWillNotDraw

于 2013-01-05T20:47:01.223 に答える