2013-02-26 182 views
3

我剛剛開始使用Android開發。我有這樣創造了一個非常簡單的按鈕:Android。按鈕沒有按下

<Button 
    android:id="@+id/howItWorksButton" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="58dp" 
    android:text="@string/how_it_works_button_title" /> 

在代碼中,我設置背景色爲它:

howItWorksButton.setBackgroundColor(Color.RED); 

這是onClickListener:

howItWorksButton.setOnClickListener(new OnClickListener() 
    { 
     public void onClick(View view) 
     { 
      Intent intent = new Intent(MainMenuActivity.this, HowItWorksActivity.class); 
      MainMenuActivity.this.startActivity(intent); 
     } 
    }); 

問題是,當我點擊它看起來並不像剛被按下,它只是保持原樣,沒有變化。它的onClick方法工作正常,功能一切正常,但我希望它以某種方式改變,就像所有按鈕按下時一樣。

+0

它不會**像壓**,直到除非你添加一個** OnClickListener( )**在你的活動中爲這個按鈕。 – Numair 2013-02-26 13:41:44

+0

@Numair我已經做到了 – 2013-02-26 13:42:09

+0

@TanjaV你可以舉一個例子請 – 2013-02-26 13:43:16

回答

5

如果您手動設置其顏色,則Android不會自動顯示按下狀態。這是推薦的方法。

將colors.xml文件夾放在values文件夾中。它的內容應該是這樣的。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="white">#ffffffff</color> 
    <color name="darkwhite">#ffeeeeee</color> 
    <color name="transparent">#00ffffff</color> 
    <color name="semitransparent">#88000000</color> 
    <color name="orange">#ffff8800</color> 
    <color name="light_orange">#ffe27d18</color> 
    <color name="light_blue">#ff00a2e8</color> 
    <color name="black">#ff000000</color> 
    <color name="menuButtonColor">#ffea8e44</color> 
</resources> 

兩個pressedstate把選擇文件在您繪製例如

my_button_selector.xml

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

使用你選擇這樣

<Button 
    android:id="@+id/howItWorksButton" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="58dp" 
    android:text="how_it_works_button_title" 
    android:background="@drawable/my_button_selector" /> 
+0

輝煌!非常感謝! – 2013-02-26 14:43:10

+0

簡單,簡短並有效。謝謝 – lalitm 2014-04-14 07:51:42

0

您需要設置圖像選擇作爲背景來告訴機器人要在按下按鈕,集中,殘疾人可見其圖像或顏色,... 在這裏你可以找到一個例子 http://www.mkyong.com/android/android-imagebutton-selector-example/

+0

只設置顏色是不正確的。它將用於每個狀態(默認,按下,聚焦等)。所以實際上沒有什麼會改變你用按鈕做什麼 – zubke 2013-02-26 13:49:43

2

試試這個,

使用Selector

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

<item android:drawable="@drawable/login_btn" android:state_pressed="false"/> 
<item android:drawable="@drawable/login_btn_focus" android:state_pressed="true"/> 

</selector> 
0

android:state_pressed=" "

當按鈕被按下

<item android:state_pressed="true"> 
    <shape> 
     <solid android:color="@color/green" /> 
     <corners android:radius="@dimen/btn_corner_rds" /> 
    </shape> 
</item> 

當按鈕未按

<item android:state_pressed="false"> 
    <shape> 
     <solid android:color="@android:color/transparent" /> 
     <stroke android:width="@dimen/stroke_width_btn" /> 
     <corners android:radius="@dimen/btn_corner_rds" /> 
    </shape> 
</item>