GradientDrawable 获取单一颜色

Posted 许佳佳233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GradientDrawable 获取单一颜色相关的知识,希望对你有一定的参考价值。

概述

GradientDrawable 虽然功能很强大,在平时的使用中,有很多场景只会使用其形状相关的功能,比如用来画一个圆形或者画一个圆角矩形,一般代码会如下:

        View vTest = findViewById(R.id.v_main_test);
        GradientDrawable gradientDrawable = new GradientDrawable();
        gradientDrawable.setColor(0xFFFF0000);
        gradientDrawable.setCornerRadius(20);
        vTest.setBackground(gradientDrawable);

获取单一的颜色

如果只在GradientDrawable 中设置了单一的颜色,GradientDrawable 中并没有提供专门获取的接口,相关逻辑需要根据对应接口自己实现,如下:

        if (vTest.getBackground() instanceof GradientDrawable) 
            GradientDrawable gradientDrawable = (GradientDrawable) vTest.getBackground();
            ColorStateList colorStateList = null;
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) 
                colorStateList = gradientDrawable.getColor();
                int singleColor = colorStateList.getColorForState(gradientDrawable.getState(), Color.WHITE);
                Log.i("test_log", "singleColor:" + singleColor);
            
        

以上是关于GradientDrawable 获取单一颜色的主要内容,如果未能解决你的问题,请参考以下文章

GradientDrawable 获取单一颜色

GradientDrawable 获取单一颜色

如何以编程方式设置 GradientDrawable 的 android:angle 属性?

GradientDrawable的使用,和简单源码分析

代码设置Shape和Selector

代码动态修改shape的颜色