2012-04-16 2 views
5

나는 꼭지점이없는 직사각형 ("u-form")을 그리는 xml shape 드로어 블을 생성해야한다. 나는 상단 (또는 하단) 라인없이 같은 모양을 정의 할 수 있습니다, 가능하면 -Android xml 모양 drawable - u-form을 그리는 방법?

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

<solid android:color="@color/detailrow_bg_normal" /> 

<corners 
    android:bottomLeftRadius="0dp" 
    android:bottomRightRadius="0dp" 
    android:radius="1dp" 
    android:topLeftRadius="10dp" 
    android:topRightRadius="10dp" /> 

<padding 
    android:bottom="2dip" 
    android:left="1.5dip" 
    android:right="1.5dip" 
    android:top="8dip" /> 

<stroke 
    android:width="1dip" 
    android:color="@color/detailtable_border" /> 

하지만 어떻게 : 난 할 수 있어요 것은과 같이, 사각형을 그립니다입니까?

답변

10

레이어 목록을 사용해 볼 수 있습니다. 이 같은 작업한다면 참조 :

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/detailtable_border" /> 
     </shape> 
    </item> 

    <item android:left="1.5dp" android:right="1.5dp" android:bottom="2dp"> 
     <shape android:shape="rectangle"> 
     <solid android:color="@color/detailrow_bg_normal" /> 
     </shape> 
    </item> 
</layer-list> 

이 후, 테두리 색상으로 사각형 채우기 (해야) 왼쪽/오른쪽/아래쪽 테두리 색상을 보여주는 적절한 양을 남겨두고 기본 배경 색상으로 오버레이 .

+2

우수 : 그 눈먼 :). 그것이 도움이되기 때문에 기쁜 데 도움이되었습니다. – Femi

0

두 가지 모양과 LayerList을 사용하여이 문제를 해결할 수도 있지만 더 나은 해결 방법이며 쉽게 NinePatch- 드로잉을 사용하는 것이 좋습니다.

+0

생각해 보았지만 이미 구현 된 솔루션에는 상당한 변화가 필요할 것입니다. 저는 XML 모양의 방식을 선호합니다. – Bachi

2

이 코드를 시도하고 또한이 link :::

내가이 하나 좋은 해결책 달성 참조 :이 여전히 투명 색상 만 개방 스트로크를해야 할 경우 잘 작동

<?xml version="1.0" encoding="utf-8"?> 

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- This is the line --> 
    <item android:top="-1dp" android:right="-1dp" android:left="-1dp"> 
     <shape> 
      <solid android:color="@android:color/transparent" /> 
      <stroke android:width="1dp" android:color="#ffffff" /> 
     </shape> 
    </item> 

</layer-list> 

을 컬러 (제 경우에는 단지 최종선 만 필요했습니다). 배경색이 필요한 경우 위의 대답과 같이 솔리드 모양 색상을 추가 할 수 있습니다.

+0

시도해보십시오. –

관련 문제