2013-02-28 31 views
1

我試圖在ImageView中顯示圖像的一部分。我用canvas.drawBitmap()嘗試了它,但它似乎顯示圖像的虛假部分。我的代碼:drawBitmap()繪製假部分

MainActivity:

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); 

DrawCharacter:

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

和結束時的圖像的一些奇怪的部分顯示。

回答

2

在您的drawBitmap()調用中,您將第一個Rect參數設置爲8,8,16,16,這是要繪製位圖的源矩形,將其設置爲null以繪製整個位圖。

see the documentation

,如果你想申請根據初始位圖比例此範圍,則可能需要適用於你的SRC矩形相同的比例。 (嘗試刪除比例部分,createScaledBitmap(),看看你的src矩形是否好,沒有比例;))

+1

我試過,因爲我只是想顯示該部分(8,8,16,16),而不是整個位圖 – ChrisMCMine 2013-02-28 17:29:17

+2

是的,我明白後,我已經完成了我的答案。 – Guian 2013-02-28 17:31:01