以前一直做android开发的时候当要使用一个按钮或者一个控件有按下效果的时候,都是在res文件夹下的drawable下创建一个对应的drawable.xml文件,比如
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/qiandw_back_press" android:state_pressed="true"/>
<item android:drawable="@drawable/qiandw_back_normal"/>
</selector>
每次都这样使用,今天希望给没有发现和使用过StateListDrawable的码友推荐一个方法,再也不用去每次都创建新的xml文件了,你只需要写一个方法即可
public StateListDrawable getSeletorDrawable(int normalID, int pressID){
StateListDrawable drawable = new StateListDrawable();
int pressed = android.R.attr.state_pressed;
drawable.addState(new int []{pressed , pressed}, getResources().getDrawable(pressID));
drawable.addState(new int []{}, getResources().getDrawable(normalID));
return drawable;
}
传入一个点击时候的图素的ID和正常时候的ID即可!