2013-06-05 60 views
3

下面是我需要做的解釋。它應該從圖庫中加載一張照片並將其顯示在屏幕上。然後用戶可以將公司的吉祥物的小圖片拖入加載的照片中,最後保存。將圖片添加到另一個

這個想法是,如果你從畫廊應用程序中搜索照片,你可以找到原始照片以及吉祥物看起來就像它的修改過的照片。

問題是,我不確定要使用哪些類來完成此操作。我實際上將照片位圖加載到ImageView中,但是我不知道如何將吉祥物添加到位圖中,我應該使用Canvas?或者是什麼程序?

回答

4

您可以從原始位圖(以您的圖庫圖像爲基準)創建畫布作爲基礎,並在其上繪製吉祥物,並將縮略圖另存爲另一個存儲文件。

您必須計算繪畫難度的位置。

Bitmap base; // Get it with your own approach, this refers to gallery image 
Bitmap mascot; // Get it with your own approach, this refers to mascot image 

Canvas canvas = new Canvas(base); 
//0f and 0f refers to coordinates of drawing, you may want to do some calculation here. 
canvas.drawBitmap(mascot, 0f, 0f, null); 

// At this point base will have the mascot drawn, you may want to display it or save it somewhere else. 
+0

我目前正在顯示ImageView上的'base'位圖。如上所述,使用畫布繪製「吉祥物」後,我需要顯示它,是否可以通過ImageView完成,還是必須創建自定義視圖? –

+0

執行完上述所有代碼後,您可以只做一個ImageView.setImageBitmap(base),然後您將更新新圖像。另外保存爲外部存儲中的另一個文件,以便您以後可以檢索它。編輯:抱歉,沒有正確地閱讀你的問題,你可以在你的屏幕上有兩個imageview,第一個將使用原始圖像設置,並且在完成繪圖後,您可以將基本設置爲第二個圖像視圖,當然再次執行setImageBitmap基於第一個ImageView也會產生效果。 –

1

你需要做的圖像第一可變的,然後在其上添加其他圖像,並獲得使其immutable-

bitmap3=mutableimage3.copy(Bitmap.Config.ARGB_4444,true);// mutable image. 


bitmap3=mutableimage3.copy(Bitmap.Config.ARGB_4444,false);//immutable