8

アプリケーション用に作成したカスタム ボタン イメージを使用したいのですが、そうすると、フォーカスされているボタンと押されているボタンに別のイメージを使用する必要があります。

セレクタータグに出くわしましたが、何らかの理由でそれが好きではありません。Eclipse は「壊れたレンダリング ライブラリ」について不平を言っています。私が得るエラーはこれです:

Broken rendering library; unsupported DPI. Try using the SDK manager to get updated.

そして、10 を超えるすべての API を更新しました。問題があれば、ターゲット API は 15 で、コンパイル API は 17 です。

これが機能しない場合は、単純に Button タグを使用して、Java src コードなどで変更できますか?

4

2 に答える 2

0

ボタンの代わりに、ImageView を作成し、画像のクリック時に必要なことを行います。

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="Method_Name"
        android:src="@drawable/selector" >
    </ImageView>

また、クリックとフォーカスで異なる画像を表示するには、drawable フォルダーに selector.xml を作成し、imageview の背景をセレクター ファイルとして設定します。

セレクター.xml

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

     <item android:drawable="@drawable/image1"  android:state_focussed="true" />
     <!-- Inactive tab -->
    <item android:drawable="@drawable/image2"  android:state_pressed="true" />
     <!-- Pressed tab -->


     </selector>

これがあなたを助けることを願っています!

于 2013-10-29T09:28:12.573 に答える
0

このようなカスタムレイアウトを使用してください

<?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/pressed"></item>

    <item android:state_focused="true" android:drawable="@drawable/focus"></item>

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

また、セレクターはこの特定の方法で定義する必要があることに注意してください。そうしないと、問題が発生します.ie

1)state_pressed
2)state_focused ( work only if you scroll to that button using the hardware key)
3)drawable i.e. normal

セレクターの順序を変更すると、機能しなくなります。これを覚える簡単な方法の 1 つは、QWERTY フォンを視覚化することです。最初にボタン ( normal) を見て、次に矢印キー ( state_focused) を使用してその特定のボタンに移動し、次にそのボタン ( state_pressed) を押しました。今、それらを逆に書いてください。

于 2013-06-07T03:37:56.410 に答える