2012-11-19 83 views
0

我正在擴展ImageView以顯示圖像。圖像的輸入流將從套接字連同其左上角座標一起獲取。我們可以在不更新整個畫布的情況下更新畫布部分嗎?

我能夠顯示圖像的一部分,其餘的屏幕是白色的。我的問題是總畫布被當前位圖覆蓋,並且以前的圖形被白屏擦除。

我搜索瞭解決方案,我偶然發現有關畫布的信息是「canvas.drawBitmap(bitmap,top,left,paint)被調用時繪製的每個像素點」。

我需要更新圖像(畫布)的唯一髒部分而不更新整個畫布。

請給我建議如何更新屏幕(畫布)的髒部分和以前的圖紙不應該被刪除。

感謝&問候

迷你。

+0

Hi @mini,你有沒有解決這個問題? – Noundla

回答

-1

您可以根據您已有的畫布製作畫布,而不是創建空白畫布然後在其上繪製。這是如何實現它的一個例子。

yourImageView.setDrawingCacheEnabled(true); 
Bitmap bm = yourImageView.getDrawingCache(); 
final Canvas canvas = new Canvas(bm); 

然後你有一個畫布,它包含任何在ImageView的是以前,你可以更新你想要的任何部分。爲此我建議看看PorterDuff modes

+0

我已經通過你的建議,看着PorterDuff模式。我很抱歉地說我沒有得到這個職位。 – mini

+0

我無法使用另一個畫布對象繪製位圖。能夠使用onDraw(Canvas canvas)中的畫布對象進行繪製。那麼我應該如何使用具有以前位圖的畫布進行繪製? – mini

+0

不回答問題。問題是關於更新畫布的一部分。您的解決方案需要創建整個位圖,即使它來自緩存。 – AndroidDev