Вопрос по android – Как изменить изображение кнопки при каждом нажатии?

6

Я создалbutton вlayout , вDrawable папка, которую я создалXML file названныйbtn01_state,btn01_state.xml назначен наbutton я создал через & quot;android:[email protected]/btn01_state& Quot;

Теперьbutton имеет значение по умолчаниюimage img1.when яclick наbutton, image1 изменится на img2, и как только я отпущу нажатую кнопку мыши, изображение снова снова изменится на img1.

what i want to do is,to change the image of the button with evey click.

для примера, изначально btn01 имеет img01

если нажата btn01 == & gt; установите img btn01 на img02 и сохраняйте img02 до повторного нажатия btn01. Теперь у btn01 есть img02.

Когда btn01 нажата, установите img01 на btn01.

Я надеюсь, что это разъяснило больше, что я хочу сделать.

btn_selector:

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

main.xml

<Button 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:id="@+id/btn01"
    android:background="@drawable/btn01_state"/>

Ваш Ответ

3   ответа
18

boolean isPressed = false;
button.setOnClickListener(buttonListener);

OnClickListener buttonListener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        if(isPressed)
           button.setBackgroundResource(R.drawable.icon1);
        else
           button.setBackgroundResource(R.drawable.icon2);

        isPressed = !isPressed;
   }
};
Не работает со мной. Он вызывается только при нажатии кнопки, а не при ее отпускании. Так что будет делать только одну ветку на каждый клик.
@ZdravkoDonev - это потому, что в операторе спрашивается, как изменить изображение кнопки с помощью щелчков, а не касаний. Если вы хотите изменить состояние кнопки, вы должны проверить эту ссылку -stackoverflow.com/a/14024007/1376688
идеально..... :) Androelpha
О да. Извините, вы правы. :) @MuratNafiz
1

btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
    btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.locationbutton_on));
                }
        }); 
0

возможно. Поместите слушателя на кнопку, и когда кнопка нажата, фон меняется.

Похожие вопросы