0

画像にスタイルを適用する最良の方法は何ですか。つまり、画像をボタンとして使用しています。私がそれに焦点を合わせたとき、私はそれをクリックし、ボタンを放してさまざまなスタイルを適用する必要があります。さまざまな目的でさまざまな画像を使用できます。しかし、それは実行可能な解決策ではありません。

4

2 に答える 2

3

ボタンをボタンとして使用しないのはなぜですか?

attrs.xml でボタンのスタイルを設定するだけです。例:

<style name="MyButton.Standard" parent="@android:style/Widget.Button">
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:textStyle">bold</item>
    <item name="android:background">@drawable/btn_gfx</item>
    <item name="android:focusable">true</item>
    <item name="android:clickable">true</item>
</style>

これを使用するには、レイアウトのボタンにスタイルを適用するだけです。

style="@style/MyButton.Standard"

btn_gfx.xml は StateList ドローアブルです

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
        android:state_pressed="true" 
        android:state_enabled="false"
        android:drawable="@drawable/btn_tab_pressed_disabled" />
    <item 
        android:state_pressed="true" 
        android:state_enabled="true"
        android:drawable="@drawable/btn_tab_pressed" />
    <item 
        android:state_enabled="false"
        android:drawable="@drawable/btn_tab_disabled" />
    <item 
        android:state_enabled="true"
        android:drawable="@drawable/btn_tab_default" />
</selector>

必要に応じて、さらに多くの状態のグラフィックを追加できます。Android のドキュメントを確認してください。

各ボタンにスタイルを適用するのではなく、アプリ内のあらゆる場所のボタンに同じシステムを使用する場合は、カスタム テーマを作成できます。例 (TitleBar なし):

<style name="MyTheme" parent="@android:style/Theme.NoTitleBar">
    <item name="android:buttonStyle">@style/MyButton.Standard</item>
</style>

次に、テーマを Application オブジェクトに適用するだけです (または、単一のアクティビティに対してのみ必要な場合は、アクティビティに適用します)。

ImageButton コンポーネントのスタイルは、Button コンポーネントとまったく同じ方法で設定できます。いじり始めると、信じられないほど強力なシステムです。

于 2012-05-04T10:15:48.853 に答える
2

これは、( State ListDrawableを使用して) XML ファイルで通常の状態、フォーカスされた状態、および押された状態を指定することによって行われます。

StateListDrawable は XML で定義されたドローアブル オブジェクトで、オブジェクトの状態に応じて複数の異なる画像を使用して同じグラフィックを表します。たとえば、ボタン ウィジェットは、いくつかの異なる状態 (押されている、フォーカスされている、またはどちらでもない) のいずれかで存在でき、状態リスト ドローアブルを使用して、状態ごとに異なる背景画像を提供できます。

たとえば、次の xml ファイルを で作成できます。res/drawableこれを selector.xml とします。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_btn_pressed"
        android:state_pressed="true" />
    <item android:drawable="@drawable/ic_btn_focused"
        android:state_focused="true" />
    <item android:drawable="@drawable/ic_btn_normal" /> 
</selector>

後で、ボタンの背景として設定できます。

<Button
   android:background="@drawable/selector"
/>
于 2012-05-04T09:58:40.547 に答える