0

基本上是什麼標題說:
我有一個視圖,我已經設置了背景圖像(通過在android:背景屬性的XML),我想當用戶按下視圖時覆蓋另一個圖像
我知道您可以使用XML選擇器在按下視圖時更改背景圖像,但是是否可以覆蓋圖像?
或者我只需要有2張圖片 - 普通的圖片,然後是添加了疊加圖片的圖片?

感謝提前:)使用XML選擇器在背景圖像頂部的Android覆蓋圖像

+0

我想這可以LayerDrawable被acheved:http://developer.android.com/reference/android/graphics/drawable/LayerDrawable.html但我還沒有與它的工作,我不能爲你提供一些更多信息。 – Chaosit

+0

謝謝,這工作:) –

回答

2

感謝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 /可繪,然後創建一個層列表,例如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"

然後你就大功告成了:-)

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)); 
      } 
     } 
    }); 
1

你可以只使用一個ImageView作爲背景圖像,並將android:tint屬性設置爲帶有alpha濾鏡的顏色。

<ImageView 
    android:scaleType="fitXY" 
    android:tint="#8c000000" 
    android:src="mipmap/background.png"/>