1

enter image description here定義佈局內容區域

我想,這樣當我做layout.addView(view);它只有boundries內添加和視圖的其餘部分被剪裁掉定義幀/線性/相對佈局的含量 - 面積。就像襯衫的照片一樣,如果我想將襯衫的邊界定義爲內容區域,我該怎麼做。任何建議/幫助? 謝謝

PS:不能做9貼片(右和底),因爲它只定義爲矩形形狀,在這種情況下,形狀可以是任何類似襯衫。想要省略contentArea中的白色/透明部分。

+0

我會建議刪除佈局的概念,並查看[PorterDuffXfermode](http://developer.android.com/reference/android/graphics/PorterDuffXfermode.html)或其他稱爲alpha合成。這是一個很好的可視化:http://upload.wikimedia.org/wikipedia/commons/thumb/2/2a/Alpha_compositing.svg/642px-Alpha_compositing.svg.png –

+2

漂亮的襯衫,順便說一句 – sha256

+0

你嘗試'''安卓:clipChildren''' http://developer.android.com/reference/android/view/ViewGroup.html#attr_android:clipChildren ?? –

回答

3

請嘗試下面的代碼: - 爲防萬一有人試圖解決同樣的問題,有一個更好的解決方案:Bitmap.createBitmap(Bitmap,int x,int y,int width,int height)。例如,如果您需要從位圖的每邊裁剪10個像素,請使用以下代碼:

Bitmap croppedBitmap = Bitmap.createBitmap(originalBitmap, 10, 10, originalBitmap.get 
2

這不是您真正可以做的事情。 從我的理解你不能使用PorterDuff,因爲你需要添加視圖到這個剪裁的容器。 我會建議一個簡單的技巧,可能對你有用。只需在您的Frame/RelativeLayout的頂部添加一個imageview,其中的圖像內容是一個完整的透明對象,您希望可見的部分具有完全的透明度,並且在您想要剪輯的區域是不透明的。從圖形上講,你應該實現你需要的東西。