android 中的 gradient最多只支持三种颜色渐变,怎样做可以支持十种?

1.android 中的gradient最多只支持三种颜色的渐变,我想支持10颜色的渐变有没有其他的方法

阅读 2.4k
1 个回答

研究了一下自定义了一个

/**
 * Created by xg on 2016/8/4.
 * 自定义渐变view
 */
public class DrawView extends View {
    private LinearGradient linearGradient = null;
    private Paint paint = null;

    public DrawView(Context context) {
        super(context);
    }

    public DrawView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public DrawView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        linearGradient = new LinearGradient(0, 0, getWidth() - getPaddingRight(), 0,
                new int[]{Color.YELLOW, Color.GREEN, Color.TRANSPARENT, Color.WHITE}, null,
                Shader.TileMode.REPEAT);
        paint = new Paint();
        //设置渲染器
        paint.setShader(linearGradient);
        //绘制圆环
        RectF rect = new RectF(0, 0, getWidth() - getPaddingRight(), getHeight() - getPaddingBottom());
        canvas.drawRect(rect, paint);
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题