首页 > 解决方案 > 在 Android 中使用画布和路径创建自定义视图

问题描述

我想创建我的自定义视图。从下方和顶部有轻微正弦曲线的视图只有简单的其他视图,我想选择任何颜色。就像我还想为该视图选择渐变颜色一样。

我试过的

我在我的代码中尝试了一个 SineView 和另一个 WaveView,但它不会按预期工作。

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    int width = canvas.getWidth();
    int height = canvas.getHeight();
    canvas.save();
    canvas.translate(0, getMeasuredHeight() / 2F);
    canvas.clipRect(0, -100, 450, 100, Region.Op.INTERSECT);
    Path mPath = new Path();
    mPath.moveTo(0, 100);
    mPath.quadTo(50, -50, 100, 0);
    mPath.quadTo(150, 50, 200, 0);
    mPath.quadTo(250, -50, 300, 0);
    mPath.quadTo(350, 50, 400, 0);
    mPath.quadTo(450, -50, 500, 100);
    Paint paint = new Paint();
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.GRAY);
    canvas.drawPath(mPath, paint);
    canvas.restore();
}

预期视图

预期视图

另外我希望视图的高度可以作为包装内容增加。我不想增加正弦曲线只想增加布局的高度。

标签: androidandroid-studioandroid-canvas

解决方案


推荐阅读