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 获取单一颜色的主要内容,如果未能解决你的问题,请参考以下文章