2017-05-17 2 views
0

Android 버튼을 만들면 원래 색상이 회색으로 변합니다. 당신이 그것을 누르면 색깔이 바뀌고, 그것을 놓으면 원래의 회색으로 되돌아갑니다.눌렀을 때 Android 버튼 색상이 변경됨

내가 그걸로하고 싶은 것이지만, 기본 회색 이외의 다른 색상으로. 문제는 버튼의 색상을 변경 한 다음 클릭하면 빈 레이아웃을 클릭하는 것처럼 아무 일도 발생하지 않는다는 것입니다. 여기

내가 내 문제를 해결하기 위해 쓴 XML 파일입니다 - 내 버튼 XML 코드에서 button_connexion_style.xml

?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="#ff0000ff" android:state_focused="true" /> <!-- focused --> 
    <item android:color="#449D44"/> <!-- default --> 
    <item android:drawable="#278727" android:state_pressed="true"/> 
</selector> 

을 내가 이전 XML 호출이 작업을 수행 :

android:background="@drawable/button_connexion_style" 

을하지만 '아무튼 일하지 마라.

누구든지 도움을받을 수 있으면 알려 주시기 바랍니다. 귀하의 버튼에 선 아래

+0

입니다 작동하지 않을 경우 알려하자' '컬러'? 세 가지 상태 모두에서 색상 값을 추가하지만 그 중 두 가지를 드로어 블로 만들 수 있습니까? – Grisgram

+0

버튼을 클릭하면이 # 278727로 변경해야합니다. 초점이 필요할 때 # ff0000ff가 필요하면 기본값 # 449D44가 필요합니까? –

+0

Grisgram 그 질문을 게시하기 전에 다른 친구에게 물었습니다. 그 사람이 저에게하라고 한 말입니다. Sunisha Sindhu 예, 그렇습니다. – TheScientist

답변

0

flat_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" android:drawable="@drawable/rect_pressed"/> 
<item android:drawable="@drawable/rect_normal"/> 
</selector> 

rect_normal.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/rect_pressed" /> 

<item android:bottom="@dimen/layer_padding"> 
    <shape android:shape="rectangle"> 
     <corners android:radius="@dimen/corner_radius" /> 
     <solid android:color="@color/colorPrimary" /> 
    </shape> 
</item> 

</layer-list> 

rect_pressed.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<corners android:radius="@dimen/corner_radius" /> 
<solid android:color="@color/colorPrimaryDark" /> 
</shape> 

추가

android:background="@drawable/flat_selector" 
0
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_enabled="false" 
     android:drawable="@color/red" /> 
    <item 
     android:state_pressed="true" 
     android:state_enabled="true" 
     android:drawable="@color/blue" /> 
    <item 
     android:state_focused="true" 
     android:state_enabled="true" 
     android:drawable="@color/green" /> 
    <item 
     android:state_enabled="true" 
     android:drawable="@color/grey" /> 
</selector> 

위의 드로어 블 drawable에 과 같은 xml 파일을 만들고 그에 맞게 이미지/색상을 설정 한 다음이 xml을 imageButton의 배경으로 설정하십시오.

0

색상 코드에 따라 채우기 마십시오,

button_connexion_style.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/green" android:state_pressed="true" /> <!-- pressed --> 
    <item android:drawable="@color/blue" android:state_focused="true" /> <!-- focused --> 
    <item android:drawable="@color/default_green" /> <!-- default --> 
</selector> 

과 가치 색상이 컬러 코드를 추가

<color name="blue">#ff0000ff</color> 
<color name="green">#278727</color> 
<color name="default_green">#449D44</color> 
0

당신은 거의 바로 하나입니다 기본값을 놓치게되는 것은 항상 마지막 문장이어야합니다.

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="#ff0000ff" android:state_focused="true" /> <!-- focused --> 
    <item android:drawable="#278727" android:state_pressed="true"/> 
<item android:drawable="@color/yourDefaultColor" /> 
</selector> 
,

내가 사람들과 너무 익숙하지 않은,하지만 이유는`focused``와``유형의 pressed````drawable`` 만 기본 '이다

관련 문제