2010-09-16 123 views
9

按下按鈕時是否可以將樣式應用於按鈕?當按下按鈕時將不同的樣式應用於按鈕

如果我有style.xml風格:

<resources> 
    <style name="test"> 
     <item name="android:textStyle">bold</item> 
    </style> 
</resources> 

選擇在button.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/test_pressed" 
       style="@style/test" 
      android:state_pressed="true"/> 
    <item android:drawable="@drawable/test_focused" 
      android:state_focused="true"/> 
    <item android:drawable="@drawable/test_normal"/> 
</selector> 

那麼我將如何引用button.xml在我的佈局?

<Button 
     ... 
     android:???="button"/> 

謝謝!

回答

-3

我還沒試過,但大概你可以在你的選擇器中加入android:id="button"

+0

我有點困惑與你的答案。你能詳細解釋一下嗎?所以我會使用android:id =「button」在我的佈局中引用button.xml? – user440308 2010-09-17 19:19:38

0
<Button 
     android:background="@drawable/button"/> 
+0

我試過使用這個,但它不起作用...你自己試過了嗎?讓我知道! – user440308 2010-09-17 19:17:44

+0

是的。應該工作得很好 - 請參閱imageview的示例 http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList – 2010-09-17 21:14:47

+0

並從您的button.xml中刪除style =「@ style/test」它應該去

0

要引用選擇器,必須將其作爲該按鈕的背景。

<Button 
    android:background="@drawable/button" 
/> 

而對於大膽壓的時候,我還沒有嘗試過下去,但也許你可以在你的選擇提的文本樣式,ISO指的是風格從中:

android:textStyle="bold" 

如果這還不起作用,你可以在按鈕的onClick()中做到這一點。

+0

android:background忽略button.xml中「按下」狀態的樣式。我已經嘗試過。我認爲我不會輕易通過XML將樣式應用於按鈕。 – user440308 2010-09-24 18:38:56

4

您可以通過使用XML按鈕定義來實現此目的。

在繪製文件夾中創建一個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/green_button" /> 

     <!-- <item android:state_focused="true" 
     android:drawable="@drawable/button_focused" /> --> 

     <item android:drawable="@drawable/black_button" /> 
</selector> 

正如你可以看到這使您可以定義不同的按鈕圖像以用於不同狀態(black_button,green_button等應.png文件在您繪製的文件夾也)現在

,從layout.xml文件,你可以只設置按鈕背景指向按鈕選擇:

<Button android:text="Play" android:id="@+id/playBtn" 
      android:background="@drawable/button_selector" 
      android:textColor="#ffffff" /> 

然後,Selector XML可以像任何圖像文件一樣從可繪製文件夾中引用。

+0

這並沒有真正解決我的問題......這隻允許我改變一個按鈕的背景圖像。我在問,按下時是否可以通過XML將樣式應用於按鈕(例如,粗體文本)。 – user440308 2010-09-24 18:37:00

2

您可以使用Color State List Resource

例,從鏈接:保存在RES /顏色/ BUTTON_TEXT

XML文件。XML:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:color="#ffff0000"/> <!-- pressed --> 
    <item android:state_focused="true" 
      android:color="#ff0000ff"/> <!-- focused --> 
    <item android:color="#ff000000"/> <!-- default --> 
</selector> 

這種佈局XML將顏色列表適用於查看:

<Button 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/button_text" 
    android:textColor="@color/button_text" />