在Android中使用画布和路径创建自定义视图

时间:2019-02-05 11:48:48

标签: android android-studio android-canvas

我想创建我的自定义视图。从底部到顶部具有轻微正弦曲线的视图仅具有简单的其他视图,无论我要选择什么颜色。就像我想为该视图选择渐变颜色一样。

我尝试过的事情

我在我的代码中尝试了一个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();
}

期望的观看次数

Expected view

我还希望视图的高度可以随着换行内容而增加。我不想增加正弦曲线,只是想增加布局的高度。

0 个答案:

没有答案