2010-12-10 13 views
2

안녕하세요 저는 세 개의 직사각형 모양을 가진 모양을 그리려고합니다 : 1. 단색 2. 그라데이션 3. 흰 줄 어떻게할까요? 이것을 시도 할 때 작동하지 않습니다. 레이아웃에는 부모 색상이 있습니다.안드로이드 SDK의 중첩 된 모양

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" 
    android:height="60px" 
    > 
    <shape 
     android:shape="rectangle" 
     android:height="30px" 
     > 
     <solid 
      android:color="#ff297baf" 
      /> 
    </shape> 
    <shape 
     android:shape="rectangle" 
     android:height="30px" 
     > 
     <gradient 
    android:type="linear" 
    android:startColor="#ff297baf" 
    android:endColor="#ff16c0e3" 
    android:angle="270"/> 
    </shape> 
    <shape 
     android:shape="rectangle" 
     android:height="3px" 
     > 
     <solid 
      android:color="#FFFFFFFF" 
      /> 
    </shape> 
</shape> 

3 가지 색상으로 그라디언트를 만들려고합니다. #ff297baf의 단색으로 시작하여 60 %에서 #ff297baf에서 #ff16c0e3까지의 그래디언트를 시작하고 끝에 while 행을 추가하십시오.

+0

당신은 여기에 훨씬 더 많은 정보를 제공해야합니다. 지금까지 시도해 본 것에 대한 예제 코드가 있습니까? 왜 단색과 그라디언트가 필요한가요? 투명한 그라디언트 오버레이입니까? 흰 줄, 개요 요? 모양 안에 들어가야합니까? – kcoppock

+0

질문에 의견을 추가하고 조금 형식을 지정하십시오. –

+0

투명하지 않은 오버레이입니다. 흰 선은 윤곽선입니다. 일반적으로 HTML에서 "border-bottom : solid 2px white"라고합니다. 그것은 내부에서 할 필요는 없지만 다른 모양을 볼 수는 없습니다. 컴파일러는 이 루트라고 가정합니다. – dropsOfJupiter

답변

8

여러 모양을 사용할 경우 LayerListDrawable을 사용해보아야합니다. 이 같은 것이 나를 위해 효과가 있지만, 예를 들어 60px의 높이에서만 가능합니다. 당신은 정확하게 당신의 필요에 맞게 수정해야 할 수도 있습니다, 그러나 이것은 당신에게 좋은 시작을 얻을해야합니다

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <shape android:shape="rectangle"> 
     <gradient 
      android:angle="270" 
      android:endColor="#ff16c0e3" 
      android:startColor="#ff297baf" 
      android:type="linear" /> 
    </shape> 
</item> 
<item android:top="57px"> 
    <shape android:shape="rectangle"> 
     <solid android:color="#FFFFFFFF" /> 
     <size android:height="3px" /> 
    </shape> 
</item> 

+0

확실히 성공했습니다! 대단히 감사합니다! – dropsOfJupiter