2015-02-04 5 views
0

클릭하면 배경색을 변경할 수 있습니다. ImageButton 그래서 나는 두 개의 드로어 블을 만드는거야이 셀렉터를 들어선택기가 ImageButton에서 작동하지 않습니다 - Android

button_click.xml

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

    <item android:drawable="@drawable/button_normal" /> 
    <item android:drawable="@drawable/button_pressed" android:state_pressed="true" /> 

</selector> 

... 선택기를 만드는거야 : button_normal.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape> 
      <solid android:color="@color/white_transparent" /> 
      <corners android:radius="2dp" /> 
      <stroke android:color="@color/shadow" android:width="1dp" /> 
     </shape> 
    </item> 
</selector> 

및 button_pressed.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape> 
      <solid android:color="#FFCC00" /> 
      <corners android:radius="2dp" /> 
      <stroke android:color="@color/shadow" android:width="1dp" /> 
     </shape> 
    </item> 
</selector> 

모든 것이 동일하고 색상 만 바뀌고 있습니다.

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

    <color name="white">#FFFFFF</color> 
    <color name="black">#000000</color> 
    <color name="gray">#EEEEEE</color> 

    <color name="primaryColor">#2196F3</color> 
    <color name="primaryColorDark">#1976D2</color> 
    <color name="accentColor">#009688</color> 

    <color name="shadow">#1A000000</color> 
    <color name="text_color">#B6B7B9</color> 
    <color name="button_clicked">#80000000</color> 
    <color name="white_transparent">#BFFFFFFF</color> 

</resources> 

그리고 내 main_screen.xml 파일이 선택기를 사용하고 ImageButton에 : 이것은 내 colors.xml 파일입니다

<ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/button_click" 
     android:padding="@dimen/activity_vertical_margin" 
     android:clickable="true" 
     android:id="@+id/btnSinoLoc" 
     android:src="@drawable/find_sino" 
     android:layout_margin="@dimen/activity_horizontal_margin" 
     android:contentDescription="@null" 
     android:maxHeight="40dp" 
     android:maxWidth="40dp" 
     android:adjustViewBounds="true" 
     android:layout_alignTop="@+id/map" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

하지만이 작동하지 않습니다 ... 난 내 ImageButton있어 내가 원하는대로,하지만 내가 누를 때, 색깔은 변하지 않습니다. 그래서 내가 놓친 것, 또는 이것을하는 다른 방법이 있습니까?

<item android:drawable="@drawable/button_normal" android:state_pressed="false" /> 

과 당신하여 ImageButton의 SRC 설정 :

답변

3

것은 또한 거짓 statePressed에 대한 항목을 정의해야 당신은 선택 XML은 button_click.xml의 이름이 설명

android:src="@drawable/button_click" 

을, 그래서 src 속성에서 호출해야합니다. 또한 드로어 블은 선택기가 아닌 실제 드로어 블이어야합니다. 그래서 모양을 만들 수 있습니다 ...

<?xml version="1.0" encoding="UTF-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
     <solid android:color="#FFCC00" /> 
     <corners android:radius="2dp" /> 
     <stroke android:color="@color/shadow" android:width="1dp" /> 
    </shape> 
+0

감사합니다. 드로어 블을 선택자로 생성하는 데 문제가있었습니다. : / – KiKo

관련 문제