0

次のセレクターがあり、かなりうまく機能します。

<?xml version="1.0" encoding="utf-8"?>
<selector android:exitFadeDuration="@android:integer/config_mediumAnimTime"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@color/the_color" />
    <item android:drawable="@android:color/transparent" />
</selector>

drawable-resouce.html のColorように、 drawable に使用できることに注意してください。

カラー リソースは、XML のドローアブルとしても使用できます。たとえば、ステート リスト ドローアブルを作成する場合、android:drawable 属性のカラー リソースを参照できます (android:drawable="@color/green")。

かなり良い。さて、テーマを試してみたいと思います。

home_menu_text_view_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector android:exitFadeDuration="@android:integer/config_mediumAnimTime"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="?attr/homeMenuTextViewPressedColor" />
    <item android:drawable="@android:color/transparent" />
</selector>

attrs.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <attr name="homeMenuTextViewPressedColor" format="color" />
</resources>

themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.X.Light.DarkActionBar" parent="Theme.Sherlock.Light.DarkActionBar">
        <item name="homeMenuTextViewPressedColor">@color/home_menu_text_view_pressed_color_inverse_holo_light</item>
    </style>
</resources>

色.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="home_menu_text_view_pressed_color_inverse_holo_light">#ff4fc5f1</color>
</resources>

今、私はエラーを取得します:-

原因: org.xmlpull.v1.XmlPullParserException: バイナリ XML ファイル 4 行目: タグには 'drawable' 属性またはドローアブルを定義する子タグが必要です

どうすればこれを解決できますか?

4

1 に答える 1

0

属性を色に変換しようとしています。セレクターには色/ドローアブルが必要です。あなたが達成しようとしていることを私が正しく理解していれば、あなたはそれを完全に取り除くことができます.

home_menu_text_view_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector android:exitFadeDuration="@android:integer/config_mediumAnimTime"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@color/home_menu_text_view_pressed_color_inverse_holo_light" />
    <item android:drawable="@android:color/transparent" />
</selector>

色.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="home_menu_text_view_pressed_color_inverse_holo_light">#ff4fc5f1</color>
</resources>

テーマとは、何をスタイリングしようとしているのかを正確に知る必要があるということです。例えば:

themes.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.X.Light.DarkActionBar" parent="Theme.Sherlock.Light.DarkActionBar">
        <item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
    </style>
    <style name="MyDropDownNav">
        <item name="android:dropDownSelector">@drawable/home_menu_text_view_selector</item>
    </style>
</resources>

お役に立てれば。

編集

気にしないで、あなたが今何をしようとしているのか理解しています。同様の問題がここで取り上げられています。

セレクター リソースは、スタイルで定義された色を使用できますか?

于 2013-03-06T19:30:15.227 に答える