0

基本的にタイトルの内容:
背景画像を (XML の android:background 属性を介して) 設定したビューがあり、ユーザーがビューを押したときに別の画像をオーバーレイし
たいビューが押されたときに XML セレクターを使用して背景画像を変更しますが、代わりに画像を重ねることは可能ですか?
または、プレーンな画像とオーバーレイが追加された画像の 2 つの画像が必要ですか?

前もって感謝します :)

4

3 に答える 3

3

Chaositのおかげで、私はこの解決策を思いつきました:
res/xml で、selector.xml などのセレクター ファイルを作成します。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/image_with_overlay" android:state_pressed="true" />
    <item android:drawable="@drawable/image" />
</selector>

次に、res/drawable で、image_with_overlay.xml などのレイヤー リストを作成します。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/image" />
    <item android:drawable="@drawable/overlay_image" />
</layer-list>

次に、Viewこのプロパティを持ちたい場合は、単に使用しますandroid:background="@xml/selector"

その後、すべて完了です:-)

于 2013-09-05T19:12:40.443 に答える
1

背景画像に ImageView を使用し、android:tint プロパティをアルファ フィルターで色に設定するだけです。

<ImageView
    android:scaleType="fitXY"
    android:tint="#8c000000"
    android:src="mipmap/background.png"/>
于 2016-11-28T19:00:11.240 に答える
0
// xml 
 <ImageView
    android:id="@+id/img"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:layout_gravity="center"
    android:adjustViewBounds="true"
    android:background="@drawable/ijoomer_btn_hover"
    android:padding="5dp"
    android:scaleType="fitXY" />

//  Activity 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
            setContentView("xml");
    img = (ImageView) findViewById(R.id.img);
    img.setImageDrawable(null);
}

   img.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if(img.getDrawable()!=null){
                img.setImageDrawable(null);
            }else{
                img.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher));
            }
        }
    });
于 2013-09-05T11:27:30.033 に答える