【问题标题】:Android: How to make a drawable with a multicolor gradient?Android:如何使用多色渐变制作可绘制对象?
【发布时间】:2015-10-07 11:06:29
【问题描述】:

我做了这个:

  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);

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

【问题讨论】:

  • 使用ShapeDrawable 而不是PaintDrawable
  • 还是透明的
  • 你在用paintleter 做什么?
  • 我只是调用 setBackground(paint),我尝试了按钮、imageview 和 textview 但没有效果
  • 在颜色定义中使用 0xffxxxxxx

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


【解决方案1】:

尝试将此drawable设置为您的视图背景

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

【讨论】:

  • 我有超过 3 种颜色
  • 感谢您的正确接受,我也在进度条indeterminateDrawable中使用了它,更多的修改将使它作为加载器移动,就像标题栏下方的gmail加载条一样,,,
猜你喜欢
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多