2011-05-12 8 views
1

私は非常に簡単なAndroidアプリケーションを作成しています。そうすることで、Droid Xアプリケーションセレクタ画面に表示されるボタンのUI要素をエミュレートすることは非常に難しいことが分かりました。よく知られていない人のために、それらの下に白いテキストのアイコンがあります。テキストの後ろに黒い丸い矩形があり、ボタンをクリックすると、アイコンの下の背景とテキストが赤色に変わります。Android開発 - カスタムボタンの外観/動作

現在のソリューションにはStateListDrawablesが含まれていますが、四角形の幅は固定されており、すべてのボタンアイコンに合わせて編集する必要があります。ローカリゼーションは最終的な目標ですので、私のソリューションは最高の状態で一時的です。私はこれを行うより愚かな方法があると仮定しますか?

答えて

0

私はこれを試していないし、あなたが話しているボタンを見たことがない。しかし、プロセスは似たようなものでなければなりません。

まず、ドロアブル(実際の背景画像)を作成します。赤い背景と透明なものの1つ。あなたの描画可能な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