2014-10-18 23 views
6

Android'de makbuz düzeni oluşturmaya ihtiyacım var. Fikir çok basit, zigzag alt kenarı olan dikdörtgen bir düzen.Android makbuz/zikzak çekilebilir/düzen

En iyi sonuç, sabit zikzak büyüklüğüne (yani, yarım üçgen şeklinde sabit bir boyuta sahip), gerçek zamanlı olarak şeklin gerçek genişliğine göre üçgen miktarını çarpacak olan çekilebilir bir düzen olacaktır. Bir klip ile, gerekirse kırpılmış üçgenler olabilir.

İşte iyi bir örnektir (düzenlemek: Ben alt zikzak çizgi bahsediyorum):

enter image description here

Aslında onu oluşturmak için nasıl bir katı fikrim yok. 9 yama düşünün, ama uygun değil gibi görünüyor. Liste katmanının yatay uzaklıklarla çekilebileceğini düşünebiliriz ..

Belki zigzagın en boy oranını korumak için ayrı ölçek bölümleri ile 9 yama oluşturmak mümkündür ... Bu da iyi olurdu.

DÜZENLEME - YANIT @Luksprog 'ın yorumunu kullanarak, kolayca ne istediğimi yeniden.

Görüntü (yani yükseklik kaynak resim boyutuna tekabül unutmayın): çekilebilir

<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, ancak listeye başvuruyorsunuz ve alt zikzak çizgisine başvuruyorum ... btw Düzenlediğiniz için teşekkürler! Aslında, belki yatay bir ListView ile elde etmek mümkündür! :) –

+0

Bu görüntü için dokuz yol oluşturamazsınız. Zig zag dişlerinden birini alabilir ve üzerinde tekrarlanan mod ile birlikte bir bitmap çiziminde kullanabilirsiniz. – Luksprog

+0

@Luksprog mükemmel! Çok basit: P Cevap verebiliyor musunuz, böylece cevabınıza oy verebilir miyim? İsterseniz cevap kodumu kullanabilirsiniz, başkalarına yardımcı olacaktır. –

cevap

2

Bunun için dokuz yolu yapamaz
İşte bazı kod görüntü dikey veya yatay tarafta gerilebilir bir alan tanımlamak için hiçbir yolu yoktur. Bu zig-zag desenini elde etmek için, zig-zag dişlerinden birini (arka plan gölgesiyle birlikte) ayıklayabilir ve sarılmış görüntüyü çekilebilir sınırlar içinde tekrarlamak için tileMode özelliğine sahip olan BitmapDrawable içine sarabilirsiniz. Bu şekilde zig-zag dişi tekrarlanacak ve deseni oluşturacaksınız.

not o yükseklik kaynak resim boyutu

Bu mutlu senaryodur tekabül ama yükseklik uymuyor zaman durum için işe yapabiliriz. Örneğin, LayerDrawable zig-zag dosyasını LayerDrawable (gerçek görünüm çekilebilir (görünüm alanının geri kalanı için) ile birlikte) ve daha sonra alt kısımda çizilebilir şekilde yerleştirmek için setLayerInset() kullanın. Ayrıca, zig-zag desen görüntüsünü, onDraw() yöntemini geçersiz kılarak alt tarafa yerleştiren kendi çekilişinizi de oluşturabilirsiniz.

+0

Fikir güzel, bunun için herhangi bir örnek var mı? –

+2

Lütfen soruya bakın ... Cevap orada (düzenlenir) :) –

+0

https://medium.com/android-dev-br/repetir-at%C3%A9-encaixar-390ade3f57bd –