2011-05-12 37 views
1

我在寫一個非常簡單的Android應用程序。在這樣做的時候,我發現我很難模擬在Droid X應用程序選擇器屏幕上找到的按鈕UI元素。對於那些不熟悉的人來說,它們是一個帶有白色文字的圖標。文本後面有一個黑色圓角矩形,點擊該按鈕時,圖標和文本下方的背景變爲紅色。Android開發 - 自定義按鈕外觀/行爲

我目前的解決方案涉及StateListDrawables,但圓角矩形具有固定的寬度,並且必須編輯到每個按鈕圖標中。本地化是最終的目標,所以我的解決方案充其量只是暫時的。我認爲有一個不太愚蠢的方式來做到這一點?

回答

0

我還沒有試過這個,我從來沒有見過你在說的按鈕。但是這個過程應該是類似的。

首先你創建你的drawables(實際背景圖像)。一個紅色背景,一個透明。您可繪製的XML會是這個樣子:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/btn_bg_red"/> 
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/btn_bg_red"/> 
    <item android:state_focused="true" android:drawable="@drawable/btn_bg_pressed"/> 
    <item android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/transparent"/> 
</selector> 

那麼你的按鈕本身可以聲明與此類似:

<Button android:id="@+id/droid_x_btn" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Droid Does" 
       android:drawableTop="@drawable/btn_icon" <!-- this is for the icon on top --> 
       android:background="@drawable/ic_droid_x_button" <!-- The name of the above file without extension --> 
       android:textColor="@color/white" /> 

希望這有助於!

+0

嘿,這幾乎就是我的,但你的更優雅。我認爲這將作爲一種解決方案,即使文字背後的黑色欄不可調整。先生非常感謝您。 :) – Joshua