2013-07-18 238 views
0

---在android應用---如何將按鈕背景顏色更改爲點擊操作?

點擊一個按鈕後,它的背景顏色被更改爲required。如再次點擊,其顏色將恢復原來的顏色。

如何實現它?

任何迴應,謝謝!

============================================== ==================================== 更新:從網絡,我找到一種方法來實現這一目標。 設計一個可繪製顏色在這樣的XML:

<drawable name="button_checked">#ffff0000</drawable> 
活性

,使用下面的代碼來獲得可繪製對象:

Resources resource = getBaseContext().getResources(); 
checked_drawable = resource.getDrawable(R.drawable.button_checked); 
中的onClick功能

,根據一個布爾變量:

setBackgroundDrawable(checked_mDrawable) 

設置按鈕背景。

+0

[用不同的顏色標準的Android按鈕](http://stackoverflow.com/questions/1521640/standard-android-button-with-a-different-color)的可能重複 – fvrghl

回答

0

在你的js文件把

$( '#按鈕')toggleClass( 'BG')。

在你的CSS

,有你的常規按鈕css樣式

#button { background: white; } 

然後添加

#button.bg { background: red; } 

所以,當他們點擊按鈕,它會變成紅色背景,如果他們再次點擊它,它會變回白色。

使用任何顏色/網址你想要的背景。

+0

謝謝您的回覆!我在android應用程序中使用java,那麼如何實現它? – ooper

0

你只需要像下面創建a state list drawable resource

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

    <item android:drawable="@drawable/btn_login_pressed" android:state_pressed="true"/> 
    <item android:drawable="@drawable/btn_login_normal" android:state_pressed="false"/> 

</selector> 

更新時間: 也許你想爲單選按鈕的效果,下面是一個例子:

<RadioButton 
     android:id="@+id/tab_communication" 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:layout_weight="1" 
     android:background="@null" 
     android:button="@null" 
     android:drawableTop="@drawable/category_communication" 
     android:paddingBottom="5dp" 
     android:paddingTop="5dp" /> 

繪製/ category_communication.xml :

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

    <item android:drawable="@drawable/category_communication_checked" android:state_checked="true"/> 
    <item android:drawable="@drawable/category_communication_normal" android:state_checked="false"/> 

</selector> 

ToggleButton是另一種選擇。

+0

我剛測試過你的方法。但它顯示的不是我希望的。 – ooper

+0

我剛測試過你的方法。但它顯示的不是我希望的。我想要的是當按鈕被點擊時,其背景顏色被改變以保持顏色A.當我再次點擊它時,其背景顏色改變以恢復原始顏色。 – ooper

+0

我已經更新了我的答案,請參閱更新, – Ivan

0

你可以在代碼中動態執行它(我不知道如何在xml中配置它)。

boolean flag=true; 
Button button=(Button)findViewById(R.id.button); 
oncreate() 
{ 
    button.setBackgroundResource(R.drawable.first_time_click); 
    button.setOnClickListener(new OnClickListener() 
    { 
    public void onClick(View v) 
    { 
     if (flag) 
     { 
      button.setBackgroundResource(R.drawable.odd_time_click);   
     }else 
     { 
      button.setBackgroundResource(R.drawable.even_time_click); 
     } 
     flag=!flag; 
    } 
    }); 
} 
相關問題