根据值填充渐变的绘图矩形

时间:2019-02-11 16:03:13

标签: java android

我想拥有三个单独的矩形,这些矩形将充满渐变。根据值X,梯度将被不同地放置。例如,如果值X = 75,则渐变将是75%的绿色和25%的红色。我想知道是否有任何库或方法可以让我在java(android studio)中执行此操作。

1 个答案:

答案 0 :(得分:0)

要实现此目的,可以对渐变使用LinearGradient,然后使用允许您更改渐变布局的方法创建自定义视图。

public class GradientView extends View {

     Paint paint;
     LinearGradient gradient;
     int[] colors = [Color.RED, Color.GREEN];

     public GradientView(Context context, int gradientHeight) {
          super(context);
          paint = new Paint();
          setGradientHeight(gradientHeight);
     }

     @Override
     protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        paint.setShader(colorGradient);
        canvas.drawPaint(paint);
    }

    public void setGradientHeight(int height){
        colorGradient = new LinearGradient(0, 0, 0, height * 0.01 * super.getHeight(), colors, null, Shader.TileMode.MIRROR);
        paint.setShader(colorGradient);
        invalidate();
    }
 }

还没有测试代码,但是它肯定应该可以像这样工作。