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