Android开发 StateListDrawable详解


前言

  StateListDrawable是与xml中的selector属性对应代码实现类,它需要配合GradientDrawable的使用,如果你还不了解GradientDrawable可以参考我的另一篇博客:https://www.cnblogs.com/guanxinjing/p/11142599.html

配置对照表

android:state_pressed=["true" | "false"]  按下状态
android:state_focused=["true" | "false"]  聚焦状态
android:state_selected=["true" | "false"]  选中状态
android:state_active=["true" | "false"]  激活状态
android:state_checkable=["true" | "false"]   可校验状态
android:state_checked=["true" | "false"]   检查状态
android:state_enabled=["true" | "false"]  启用状态
android:state_window_focused=["true" | "false"]   状态栏聚焦状态

点击效果demo

 

        GradientDrawable drawableRed = new GradientDrawable();
        drawableRed.setShape(GradientDrawable.RECTANGLE);
        drawableRed.setColor(Color.RED);

        GradientDrawable drawableBlue = new GradientDrawable();
        drawableBlue.setShape(GradientDrawable.RECTANGLE);
        drawableBlue.setColor(Color.BLUE);

        int pressed =  android.R.attr.state_pressed;
        StateListDrawable stateListDrawable = new StateListDrawable();
        stateListDrawable.addState(new int[]{pressed}, drawableRed);
        stateListDrawable.addState(new int[]{-pressed}, drawableBlue);
        btn1.setBackground(stateListDrawable);

 

效果图:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM