Android 点击图片切换(代码与xml)

在css中<a 标签可以通过伪类的方式实现鼠标略过,鼠标点击前后的不同样式,在Android,可以通过设置View的“android:background”属性或在代码中通过setBackgroundDrawable()方法设置点击前后View的不同图片。

下面简单介绍下xml和代码两种方式:

1、xml 方式实现

1.1在res/drawable下新建一个xml 如 mybg.xml,具体内容如下:

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

1.2把view对应的android:background指向mybg,如

<TextView android:id="@+id/tvTest" android:background="@drawable/mybg" ...

2、代码方式实现

StateListDrawable drawable = new StateListDrawable();
try {

drawable.addState(new int []{android.R.attr.state_focused, android.R.attr.state_enabled}, context.getResources().getDrawable(R.drawable.menu_focused));
drawable.addState(new int []{android.R.attr.state_pressed, android.R.attr.state_enabled}, context.getResources().getDrawable(R.drawable.menu_pressed));
drawable.addState(new int []{android.R.attr.state_checked, android.R.attr.state_enabled}, context.getResources().getDrawable(R.drawable.menu_clicked));
drawable.addState(new int []{android.R.attr.state_selected, android.R.attr.state_enabled}, context.getResources().getDrawable(R.drawable.menu_selected));
drawable.addState(new int []{}, context.getResources().getDrawable(R.drawable.menu_default));

} catch (Exception e) {
e.printStackTrace();
}

TextView view = new TextView(context);

view.setBackgroundDrawable(drawable);

部分view没有selected效果,只有radioButton等才有该效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值