Изменение фона кнопки Android - PullRequest
3 голосов
/ 24 ноября 2011

Я создаю приложение для Android, когда пользователь нажимает кнопку в приложении, изображение кнопки должно измениться, чтобы показать, что она была нажата, тогда вызывается некоторая функция

, используя следующий код вфункция onclick:

{
  btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.sync_active));
  sync();               
}

, что происходит, если сначала вызывается функция синхронизации, а затем изменяется изображение кнопки !!

Ответы [ 3 ]

2 голосов
/ 24 ноября 2011

создайте xml-файл, используя изображение кнопки, подобное этому, с mybutton.xml в папке для рисования

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

и используйте это в кнопке xml code

android:background:@drawable/mybutton

Вы можете проверить это из этого https://stackoverflow.com/q/8132500/964741

1 голос
/ 24 ноября 2011

Вы можете попытаться поместить функцию sync () в поток.

1 голос
/ 24 ноября 2011

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

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
    android:state_enabled="false"
        android:drawable="@drawable/btn_red" />
    <item 
        android:state_pressed="true" 
        android:state_enabled="true"
        android:drawable="@drawable/btn_orange" />
    <item 
        android:state_focused="true" 
        android:state_enabled="true"
        android:drawable="@drawable/btn_orange" />
    <item 
        android:state_enabled="true"
        android:drawable="@drawable/btn_black" />
</selector>

А в методе onClick(); вам нужно просто вызвать вашу функцию sync(),

см. Этот замечательный учебник это именно то, что вы хотите:)

...