2014-02-14 3 views
1

Я хочу изменить изображение кнопки изображения на удержании и изменить его на выпуск. Вот мой основной код поможет изменить это. XML кода:Изменить кнопку изображения на удержании

<ImageButton 
       android:layout_width="62dp" 
       android:layout_weight="1" 
       android:layout_height="60dp" 
       android:id="@+id/im1" 
       android:layout_gravity="fill_horizontal" 
       android:src="@drawable/off1"/> 

и Java кода:

im1 = (ImageButton) findViewById(R.id.im1); 
     im1.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
      //some codes 
      } 
     }); 
+0

использование селектор для кнопки изображения – San

ответ

2

Вам просто нужно установить селектор кнопки в вашем файл макета.

<Button 
    android:id="@+id/button1" 
    android:background="@drawable/selector_xml_name" 
    android:layout_width="200dp" 
    android:layout_height="126dp" 
    android:text="Hello" /> 

и сделано.

Редактировать

Ниже button_effect.xml файл в каталоге вытяжке

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

    <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item> 
    <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item> 
    <item android:drawable="@drawable/numpad_button_bg_normal"></item> 

</selector> 

В этом, вы можете увидеть, что есть 3 вводимого коэффициента, нужно просто поместить этот button_effect стиль вашей кнопки, так как я написал выше. Вам просто нужно заменить selector_xml_name на button_effect.

+0

спасибо. Это сработало! –

0

использовать селектор, как это и применить эту вытяжке в кнопке:

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/buttonbluepressed" /> 
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/buttonbluepressed" /> 
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/buttonbluepressed" /> 
    <item android:drawable="@drawable/buttonblue"/> 
</selector> 
1

Да, вы должны использовать селектор. вы можете использовать TogggleButton и сделать его android:checked = "true" и установить фон как @drawable/selector, тогда только на hodiing и выпуске он изменит свое состояние. toggle_button_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/image1_pressed" 
      android:state_pressed="true" /> 
    <item android:drawable="@drawable/image2_pressed" 
      android:state_checked="true" /> 
    <item android:drawable="@drawable/image1_pressed" 
      android:state_checked="false" /> 
</selector> 

Затем в файле макета

<ToggleButton 
     android:id="@+id/btnToggle" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="wrap_content" 
     android:textOn="" 
     android:textOff="" 
     android:checked="true" 
     android:background="@drawable/toggle_button_selector" /> 

То же самое можно сделать с помощью кнопки также.

Смежные вопросы