状态选择的两种设置方式

  1. 使用xml进行设置
    如果你的状态选择的图片存在本地,那么无疑要是用xml进行设置状态选择,使用方式很简单,网上搜素一下很多资料。
  2. 使用StateListDrawable类进行代码中设置
    如果你的状态选择器使用的图片是从网络中获取,那么我们就不得不使用代码来进行设置状态选择了
    类功能说明:该类定义了不同状态值下与之对应的图片资源,即我们可以利用该类保存多种状态值,多种图片资源。
    常用方法为:
    public void addState (int[] stateSet, Drawable drawable)
    功能: 给特定的状态集合设置drawable图片资源
    
    使用简介:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //初始化一个空对象  
    StateListDrawable stalistDrawable = new StateListDrawable();
    //获取对应的属性值 Android框架自带的属性 attr
    int pressed = android.R.attr.state_pressed;
    int window_focused = android.R.attr.state_window_focused;
    int focused = android.R.attr.state_focused;
    int selected = android.R.attr.state_selected;
    stalistDrawable.addState(new int []{pressed , window_focused}, getResources().getDrawable(R.drawable.pic1));
    stalistDrawable.addState(new int []{pressed , -focused}, getResources().getDrawable(R.drawable.pic2);
    stalistDrawable.addState(new int []{selected }, getResources().getDrawable(R.drawable.pic3);
    stalistDrawable.addState(new int []{focused }, getResources().getDrawable(R.drawable.pic4);
    //没有任何状态时显示的图片,我们给它设置我空集合
    stalistDrawable.addState(new int []{}, getResources().getDrawable(R.drawable.pic5);