2015-11-02 24 views
1

我有一個佈局,其上半部分是谷歌地圖,下半部分有一些數據。我需要以編程方式拍攝整個屏幕的屏幕截圖。我截取了兩個視圖的截圖,並希望垂直加入它們。這怎麼能實現?Android - 如何連接兩個垂直相同寬度的位圖?

+0

需要更多的細節!您正在尋找一個特定的軟件包或語言嗎?你已經嘗試了什麼? – wally

+0

我希望完整的佈局的屏幕截圖包含谷歌地圖的上半部分佈局和一些底部的textview線性佈局。我正在做這個在android –

+0

我會更新你的問題,以反映這一點,我正在調整和絆倒在分類下。請參閱http://stackoverflow.com/help/how-to-ask - 我想你想問的是一個「有效」的SO問題,但我認爲任何人都無法確定你是什麼詢問它是如何寫入的。請仔細閱讀,包括屏幕截圖和模擬(如果適用),並鏈接一些示例或文章,以顯示您已完成的研究,並指明您想要實現的目標。 – wally

回答

2

確實可以垂直(或水平地)連接兩個位圖。它可以通過以下方式完成。

假設你有兩個意見,view1view2。首先,您需要爲這樣的這兩種觀點創建位圖:

int a = view1.getMeasuredWidth(); 
int b = view1.getMeasuredHeight(); 
int c = view2.getMeasuredWidth(); 
int d = view2.getMeasuredHeight(); 

Bitmap b1 = Bitmap.createBitmap(a, b, Bitmap.Config.ARGB_8888); 
Bitmap b2 = Bitmap.createBitmap(c, d, Bitmap.Config.ARGB_8888); 
Bitmap b3 = Bitmap.createBitmap(a, b + d, Bitmap.Config.ARGB_8888); 

第三位b3將包含垂直合併的位圖b1b2要求。合併它們,請執行以下操作:

Canvas c1 = new Canvas(b1); 
view1.draw(c1); 

Canvas c2 = new Canvas(b2); 
view2.draw(c2); 

Canvas canvas = new Canvas(b3); 

canvas.drawBitmap(b2, new Matrix(), null); 
canvas.drawBitmap(b1, 0, view2.getHeight(), null); 

現在b3應該有你想要的東西。

試試這個。這將工作。

+0

嘿感謝您的答案,但我已經有位圖的兩個視圖我只是想垂直加入他們 –

+0

你試過這種方法嗎?它會做你想做的。這個對我有用。它將兩個位圖合併爲一個位圖。請先嚐試一下... :) –

+0

我會盡快嘗試 –

相關問題