Android:如何制作具有多色渐变的可绘制对象?

标签 android android-drawable linear-gradients android-shape

我做了这个:

  ShapeDrawable.ShaderFactory shaderFactory = new ShapeDrawable.ShaderFactory() {
        @Override
        public Shader resize(int width, int height) {
            LinearGradient linearGradient = new LinearGradient(0, 0, width, height,
                    new int[]{
                            0xF44336,
                            0xFFB74D,
                            0xFFE082,
                            0xAED581,
                            0x4CAF50,
                            0xAED581,
                            0xFFE082,
                            0xFFB74D,
                            0xF44336},
                    new float[]{
                            0, 0.125f, 0.25f, 0.375f, 0.5f, 0.625f, 0.75f, 0.875f, 1.0f},
                    Shader.TileMode.REPEAT);
            return linearGradient;
        }
    };
    PaintDrawable paint = new PaintDrawable();
    paint.setShape(new RectShape());
    paint.setShaderFactory(shaderFactory);

但是当我将它设置为 View 中的背景时,我什么也看不到。

最佳答案

尝试将此可绘制对象设置为您的 View 背景

GradientDrawable rainbow = new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
            new int[] {Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED});

关于Android:如何制作具有多色渐变的可绘制对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32990598/

相关文章:

android - 同一 fragment 的多个实例 : Android Navigation Component

android - 所选 View 的默认选择器

android - Bash:查找并替换脚本中的文本

android - 屏幕方向横向回到纵向不起作用

android - ScrollView 底部空白

css - 悬停时线性渐变?

css - 如何避免Safari中线性渐变变暗的影响?

android - 可绘制对象与位图

android - BitmapFactory.decodeResource() 为 xml drawable 中定义的形状返回 null

css3 重复线性渐变 - 获得细粒度模式?