基本上标题是什么:
我有一个视图,我已经设置了背景图像(通过XML中的android:background属性),我想在用户按下视图时叠加另一个图像
我知道您可以使用XML选择器在按下视图时更改背景图像,但是是否可以覆盖图像?
或者我只需要有2张图像 - 普通图像,然后是添加了图层的图像?
在此先感谢:)
答案 0 :(得分: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"
然后你们都完成了: - )
答案 1 :(得分:1)
您可以使用ImageView作为背景图像,并将android:tint属性设置为带alpha过滤器的颜色。
<ImageView
android:scaleType="fitXY"
android:tint="#8c000000"
android:src="mipmap/background.png"/>
答案 2 :(得分: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));
}
}
});