2011-01-02 6 views
2

イメージの代わりにクリックする色を設定したいと思います。そうすることで、実行時の強制終了以外のエラーは発生しません。これを行うことさえできますか、セレクターは画像にのみ使用できますか?セレクターで色を使うxml

コードIは、以下しようとしている:それはこれを実行するか、画像のみのために使用することができるセレクタ可能であっても

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_focused="true" android:state_pressed="true" android:background="#00C0FF" /> 
    <item android:state_focused="true" android:state_pressed="false" android:background="#0060FF" /> 
    <item android:state_focused="false" android:state_pressed="true" android:background="#00C0FF" /> 
    <item android:state_focused="false" android:state_pressed="false" android:background="#FFFFFF" /> 

</selector> 

答えて

3

documentation

<item> 
    Defines a drawable to use during certain states, as described by its attributes. Must be a child of a <selector> element. 

    android:drawable 
     Drawable resource. **Required.** Reference to a drawable resource. 

ごとにあなたは色

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#33FF33"/> 
</shape> 
+0

これは、定義上、この問題に対する素晴らしい解決策です。ありがとう! – Espen

1

ですか?

いいえ、これは(私にとっては)少なくとも意味がありません。 'drawable'がなければ、state_focusedとstate_pressedに設定するものを正確にどのように知ることができますか?

単一のカラードロウアブル(ビットマップなど)を作成し、各アイテムのドロワブルとして提供するだけではどうですか。

+0

まあを保持するために、単純な形状の描画可能を作成することができない、アンドロイド:バックグラウンドタグは両方を扱うことができます。アンドロイド:background = "#FFFFFF"の場合、アンドロイド:background = "@ drawable/image"を使用するとイメージを使用します。私はそれがdrawableフォルダになければならないという効果を見る。セレクタxmlはそれ自身のフォルダを持つべきである、またはdrawableも色かもしれないことを意味する。リソースが限られているデバイスで、単純な色のイメージを使用する必要はありません。 – Espen

+0

フェアコメント。私が言ったように、私は個人的には、「集中した」状態と「押し込まれた」状態を持つことができる「何か」がなければ、それがどのように機能するかを見ることができませんでした。ダレンの答えはあなたのアプローチと私の間の良い中間地平を見つけます。しかし、小さな単色画像は(最小限のリソースを使用して)非常にうまく圧縮され、UIを分解することなく拡大することができます。 – Squonk

+0

また、私はアンドロイドがイメージからイメージを作成するのと同じようにイメージを作成すると思います。リソースとしてはかなり同じです。ちょうどそれを形作ることがより良いように見える:-) – Espen

関連する問題