54

それ自体のように簡単です。この方法で選択されたドローアブルを持つアルファボタンを作成したいと思います。

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

    <!-- Play/Pause -->
    <item android:state_selected="false" android:drawable="@drawable/item" />
    <item android:state_selected="true" android:drawable="@drawable/item" />

</selector>

私はこのようなものを作りたいと思います:

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

    <!-- Play/Pause -->
    <item android:alpha="125" android:state_selected="false" android:drawable="@drawable/item" />
    <item android:alpha="255" android:state_selected="true" android:drawable="@drawable/item" />

</selector>

全てに感謝 。

4

8 に答える 8

56

OPからしばらく経ちましたが、個人的には、提案された回答よりもはるかにうまく機能する解決策を見つけました。BitmapDrawableを作成すると、アルファを簡単に設定できます。

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/your_drawble"
    android:alpha="77">
</bitmap>

アルファは 0 ~ 255 の任意の値にすることができます。たとえば、70% のアルファは HEX では B3、BitmapDrawable では 77 であるため、これは HEX カラー値アルファの逆数であることに注意してください。

于 2015-03-16T14:02:11.483 に答える
51

ドローアブルを使用して同じことを達成しました

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#5000ddff" />
</shape>

ここでは、不透明度を設定するアルファ 50 を使用しました。それが役立つことを願っています

于 2013-08-24T20:29:34.350 に答える
19

私は同じものを探してきました。これは4年以上前の投稿ですが、この問題をグーグルで検索するとトップの投稿なので、ここで返信します.

これが私の解決策です

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false">
        <bitmap android:alpha="@integer/not_pressed_alpha" android:src="@drawable/item"/>
    </item>
    <item android:state_pressed="true" android:drawable="@drawable/item" />
</selector>
于 2016-04-22T12:58:17.577 に答える
15

OPと同じ問題を抱えている人のために、ターゲットコードで望んでいたように、AppCompatで「アルファ」パラメーターを設定できるようになりました。

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

    <!-- Play/Pause -->
    <item android:alpha="125" android:state_selected="false" android:drawable="@drawable/item" />
    <item android:alpha="255" android:state_selected="true" android:drawable="@drawable/item" />

</selector>

詳細はこちら

于 2016-06-21T14:42:26.047 に答える
0

この引数をパラメーターとして取ることができる独自のドローアブルを作成できると思います。そんなことしたことないけど。

このリンクをチェックしてください:

StateListDrawable でドローアブルのアルファ値を設定するには?

それが不可能な場合は、いつでもコードで実行できます...

代わりにビットマップを使用したい場合に備えて、私が見つけた2つのリンクを次に示します。

于 2013-08-24T21:10:12.050 に答える