0

画像の上に四角形を描画しようとしていますが、画像にアートを配置するのに問題があります。Rectangle の一部だけが画面の下部のどこかに表示されます。これが私がやっていることです:

sinewave は res>drawable フォルダからの画像です

public void onDraw(Canvas canvas) 
{
     Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sinewave);
     canvas.drawBitmap(myBitmap, 0, 0, null);

     Paint myPaint = new Paint();
     myPaint.setColor(Color.GREEN);
     myPaint.setStyle(Paint.Style.STROKE);
     myPaint.setStrokeWidth(3);
     canvas.drawRect(0, 35 ,80 , 20, myPaint);
}

35 を超えることができません。四角形を正弦波の画像の真ん中に配置したいと考えています。誰かが彼らのアイデアを手伝ってくれませんか。

4

1 に答える 1

1

これが機能するかどうかはわかりませんが、ビットマップに getScaledHeight および width メソッドを試すことができます。これが正しい境界を取得すると、外側の境界線に長方形が描画されますが、必要な場所に配置するように調整できます。

int height = bm.getScaledHeight(canvas);
int width = bm.getScaledWidth(canvas);
Rect r = new Rect(0, 0, width, height);
canvas.drawRect(r, paint);
于 2010-08-06T17:26:50.690 に答える