2014-10-18 90 views
6

我需要在Android中創建收據佈局。 這個想法很簡單,有一個曲折的底邊的矩形佈局。Android收據/鋸齒形/佈局

最好的結果將是一個具有固定曲折大小(意思是固定的半三角大小)的可繪製/佈局,其將實時地乘以根據形狀的實際寬度的三角形量。如果有必要,也可以使用剪輯來剪輯三角形。

這裏是一個很好的例子(編輯:我指的底部曲折線):

enter image description here

其實我已經對如何創建它沒有堅實的想法。想到9個補丁,但看起來不合適。可以使用水平偏移量繪製列表層的圖層..

也許有可能創建一個帶有單獨刻度部分的9個貼片,以保持之字形的縱橫比......這也可以。

編輯 - 答案 使用@Luksprog的評論,我輕鬆地重新創建我想要的。
下面是一些代碼:

圖片(請注意,高度與源圖像大小):

<ImageView 
     android:id="@+id/zigzag_bottom" 
     android:layout_width="match_parent" 
     android:layout_height="12dp" 
     android:adjustViewBounds="true" 
     android:scaleType="fitXY" 
     android:src="@drawable/zigzag" />  

繪製:

<?xml version="1.0" encoding="utf-8"?> 
    <bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
     android:src="@drawable/ic_zigzag" 
     android:tileMode="repeat" 
     android:antialias="true" 
    /> 
+0

Thx,但你指的是列表,我指的是底部之字形線...... btw謝謝你的編輯! 實際上,也許有可能用水平ListView實現!:) – 2014-10-18 16:53:40

+0

您無法爲該圖像創建九條路徑。你可以簡單地選擇其中一個曲折形狀的牙齒,並將其用於可重繪模式的可繪製位圖中。 – Luksprog 2014-10-18 17:29:08

+0

@Luksprog完美!非常簡單:P您能否回覆我的意見,以便我可以投票答覆?如果你願意,你可以使用我的答案代碼,它可以幫助其他人。 – 2014-10-18 18:11:33

回答

2

您不能爲九路圖像,因爲無法在垂直或水平面上定義可拉伸區域。要獲得該之字形圖案,您可以提取其中一個之字形齒(以及它的背景陰影)並將其包裝在BitmapDrawable中,該具有tileMode屬性,用於在可繪製邊界內重複包裝圖像。這樣鋸齒形的牙齒會重複出現,你就可以組成這個圖案。

注意,高度對應於源圖像大小

這是一個幸福的場景,但你可以把它的情況下工作時,高度不匹配。例如,您可以將Zig-zag BitmapDrawable包含在LayerDrawable(以及實際視圖可繪製(對於其餘視圖區域)),然後使用setLayerInset()將繪圖放置在底部。您也可以創建自己的drawable,通過覆蓋onDraw()方法將Z形圖案圖像置於底部。

+0

這個想法很好,你有沒有這方面的例子。 – 2015-11-30 07:43:10

+2

請看這個問題...答案是(編輯)那裏:) – 2015-11-30 17:54:14

+0

https://medium.com/android-dev-br/repetir-at%C3%A9-encaixar-390ade3f57bd – 2016-07-24 14:55:50