1

で画像の一部を表示しようとしていImageViewます。で試してみましたcanvas.drawBitmap()が、画像の虚偽の部分が表示されているようです。私のコード:

主な活動:

    this.drawCharacter = new DrawCharacter(1);
    this.bm = Bitmap.createBitmap(16, 32, Bitmap.Config.ARGB_8888);
    this.c = new Canvas(this.bm);
    this.c = this.drawCharacter.drawCharacter(this.c, this.characterBitmap);
    this.bm = Bitmap.createScaledBitmap(this.bm, this.imgWidth, this.imgHeight, isChild());

    this.imgv.setImageBitmap(this.bm);

キャラクターを描く:

[...]
  Paint localPaint = new Paint();
  paramCanvas.drawBitmap(paramBitmap, new Rect(8, 8, 16, 16), new Rect(4, 0, 12, 8), localPaint);
  return paramCanvas;
[...]

そして最後に、画像の奇妙な部分が表示されます。

4

1 に答える 1

2

呼び出しで、最初の Rect パラメーターを 8,8,16,16 に設定しますdrawBitmap()。これは、ビットマップから描画されるソース四角形であり、null に設定してビットマップ全体を描画します。

ドキュメントを参照してください

最初のビットマップ スケールに従ってこの境界を適用する場合は、src Rectangle に同じスケールを適用する必要がある場合があります。(スケール部分を削除して、スケールcreateScaledBitmap()なしでsrc長方形が適切かどうかを確認してください;))

于 2013-02-28T17:26:37.477 に答える