2014-10-14 2 views
0

내 레이아웃 중 하나의 배경으로 사용하고있는 사용자 정의 drawable이 있습니다.안드로이드 상태를 변경할 수 없습니다 statelistdrawable

내 당김 :

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
... 
<item android:state_enabled="false"> 
    <shape android:shape="oval" > 
     <gradient android:startColor="@color/red" android:endColor="@color/red" android:angle="270" /> 
    </shape> 
</item> 

그리고 이것은 내 레이아웃입니다 : 내가 설정하면 프로그램

<LinearLayout 
     android:id="@+id/btn" 
     android:layout_gravity="center" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/round_button" 
     android:gravity="center" 
     android:clickable="true" 
     android:onClick="call" > 

:

btn.setEnabled(false); 

내 BTN의 배경과 유지 그만큼 같은 색깔. 그것은 빨간색이되지 않습니다, 왜?

+0

선택기에 기본 항목 (즉, 상태 속성이없는 항목)을 추가해보십시오. – faizal

+0

mhh,하지만 기본적으로 나는 녹색 배경을 원합니다. 그리고 그것을 할 필요가있을 때 나는 붉은 색을 설정하고 싶습니다. – deveLost

+0

네, 그게 바로 기본 항목입니다. – faizal

답변

0

다음과 같이 사용하십시오. 각 상태에 그라디언트 또는 색상을 사용할 수 있습니다.

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

    <item android:state_pressed="true"><shape android:shape="oval"> 
      <gradient android:angle="270" android:endColor="@color/red" android:startColor="@color/red" /> 
     </shape></item> 
    <item android:state_enabled="false"><shape android:shape="oval"> 
      <gradient android:angle="270" android:endColor="@color/grey" android:startColor="@color/grey" /> 
     </shape></item> 
    <item android:state_enabled="true"><shape android:shape="oval"> 
      <gradient android:angle="270" android:endColor="@color/green" android:startColor="@color/green" /> 
     </shape></item> 

</selector> 
+0

아니요, 제 모양에 색상을 정의하고 싶습니다. – deveLost

+0

작동합니다. <그라디언트 android : startColor = "@ color/red"android : endColor = "@ color/red"android : angle = "270"/> 내부 코드 –

+0

정확히 내가 한 일이야 ^^ – deveLost

관련 문제