简单记录——android selector对应的java实现:StateListDrawable

xml代码:

color.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="btn_normal">#88FE9D3D</color>
    <color name="btn_pressed">#EEFE9D3D</color>
</resources>
selector_btn.xml:

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

    <item android:drawable="@color/btn_pressed" android:state_pressed="true"/>
    <item android:drawable="@color/btn_normal" android:state_pressed="false"/>

</selector>
java中调用:

TextView tvXML = (TextView) findViewById(R.id.tvXML);
tvXML.setClickable(true);
tvXML.setBackgroundDrawable(getResources().getDrawable(R.drawable.selector_btn));

java代码:

/** 获取一个selector */
public Drawable getSelectorDrawable() {
	ColorDrawable cdNormal = new ColorDrawable(Color.parseColor("#88FE9D3D"));
	ColorDrawable cdPressed = new ColorDrawable(Color.parseColor("#EEFE9D3D"));
	StateListDrawable sld = new StateListDrawable();
	sld.addState(new int[] { -android.R.attr.state_pressed }, cdNormal);
	sld.addState(new int[] { android.R.attr.state_pressed }, cdPressed);
	return sld;
}

java中调用:

TextView tvJAVA = (TextView) findViewById(R.id.tvJAVA);
tvJAVA.setClickable(true);
tvJAVA.setBackgroundDrawable(getSelectorDrawable());

StateListDrawable:http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html

State List:http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值