2014-10-18 1 views
6

Android에서 영수증 레이아웃을 생성해야합니다. 아이디어는 매우 간단합니다. 지그재그 모양의 하단 가장자리가있는 사각형 레이아웃입니다.Android 영수증/지그재그 드로어 블/레이아웃

가장 좋은 결과는 고정 지그재그 크기 (고정 된 반 삼각형 크기)를 가진 드로어 블/레이아웃인데, 은 실시간으로 모양의 실제 너비에 따라 삼각형 양을 곱합니다. 필요할 경우 클립으로 삼각형을 잘라낼 수도 있습니다.

여기 좋은 예이다 (편집 : 나는 바닥 지그재그 선 말하는 겁니다) :

enter image description here

내가 실제로 그것을 만드는 방법에는 고체 생각이 없다. 9 패치의 생각이지만, 그것은 적합하지 않은 것 같습니다. 수평 오프셋을 가진리스트 레이어 드로어 블의 생각은 아마도 ..

아마도 지그재그의 가로 세로 비율을 유지하기 위해 별도의 스케일 섹션이있는 9 개의 패치를 만들 수 있습니다.

EDIT - ANSWER @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,하지만 당신은리스트를 언급하고 있습니다. 그리고 저는 아래 지그재그 라인을 언급하고 있습니다 ... 편집 해 주셔서 감사합니다! 사실, 아마도 가로 ListView를 사용하여 달성 할 수 있습니다! :) –

+0

해당 이미지에 대해 9 개의 경로를 만들 수 없습니다. 지그재그 이빨 중 하나를 선택하여 반복 모드가 설정된 비트 맵 드로어 블에서 사용할 수 있습니다. – Luksprog

+0

@Luksprog 완벽! 간단합니다. P 답변에 응답 해 주시면 답변을 투표 할 수 있습니까? 원한다면 내 대답의 코드를 사용할 수 있습니다. 다른 사람들에게 도움이 될 것입니다. –

답변

2

당신은 그것을위한 아홉 개 경로를 만들 수 없습니다
여기에 몇 가지 코드 이미지는 수직 또는 수평 측면에서 신축성있는 영역을 정의 할 방법이 없기 때문입니다. 이 zig-zag 패턴을 얻으려면 (배경 그림자와 함께) zig-zag 치아 중 하나를 추출하여 BitmapDrawable에 넣으십시오. tileMode 속성을 사용하여 드로어 블 경계 내에서 래핑 된 이미지를 반복합니다. 이렇게하면 지그재그 이빨이 반복되어 패턴을 구성하게됩니다.

노트는 그 높이가 원본 이미지 크기

이 행복한 시나리오에 해당하지만 높이가 일치하지 않는 경우는 경우에 작동하게 할 수있다. 예를 들어 LayerDrawable에 지그재그로 BitmapDrawable을 감쌀 수 있습니다 (나머지 뷰 영역의 경우). 그런 다음 setLayerInset()을 사용하여 하단에 드로어 블을 배치합니다. onDraw() 메서드를 재정 의하여 바닥에 지그재그 패턴 이미지를 배치하는 드로어 블을 직접 만들 수도 있습니다.

+0

아이디어가 좋다. 어떤 사례가 있는가? –

+2

질문을보세요 ... 대답은 (편집 됨)입니다. –

+0

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

관련 문제