zoukankan      html  css  js  c++  java
  • 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);

    效果图:

  • 相关阅读:
    求最低价格
    A*算法入门
    hdu 4715
    手动扩大栈内存,让AC无忧
    hdu 4710
    hdu 1698
    poj3468区间延迟更新模板题
    hdu 1059二进制优化背包问题
    2059龟兔赛跑
    水1276
  • 原文地址:https://www.cnblogs.com/guanxinjing/p/11243902.html
Copyright © 2011-2022 走看看