簡體   English   中英

選中后如何使SwitchCompat不變色?

[英]How to make SwitchCompat not change colors when checked?

這是未經檢查的樣子:

PIC

並檢查:

PIC

明顯不匹配的設計,那么如何使它看起來像未經檢查的設計?

您可以為這兩個語句使用相同的顏色進行着色:

    switchButton.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            isTouched = true;
            switchButton.getThumbDrawable().setColorFilter(getResources().getColor(R.color.your_color), PorterDuff.Mode.SRC_IN);
            return false;
        }
    });
    switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
    {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            if (isTouched) {
                isTouched = false;
                if (isChecked) {
                    switchButton.getThumbDrawable().setColorFilter(getResources().getColor(R.color.your_color), PorterDuff.Mode.SRC_IN);
                }
                else {
                    switchButton.getThumbDrawable().setColorFilter(getResources().getColor(R.color.your_color), PorterDuff.Mode.SRC_IN);
                }
            }
        }
    });

得到它了! 我不得不做一些研究,android如何找到軌道的較深顏色...

switchview.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            switchview.getThumbDrawable().clearColorFilter();
            int colorPrimaryDark = getResources().getColor(R.color.colorPrimaryDark);
            int r = (colorPrimaryDark >> 16) & 0xFF;
            int g = (colorPrimaryDark >> 8) & 0xFF;
            int b = (colorPrimaryDark >> 0) & 0xFF;
            r = (r - 30 < 0) ? 0 : r - 30;
            g = (g - 30 < 0) ? 0 : g - 30;
            b = (b - 30 < 0) ? 0 : b - 30;
            int darker = Color.rgb(r, g, b);
            switchview.getTrackDrawable().setColorFilter(darker, PorterDuff.Mode.SRC_IN);
        }
    });

現在選中和未選中將完全相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM