android - 在 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();
}
预期视图
另外我希望视图的高度可以作为包装内容增加。我不想增加正弦曲线只想增加布局的高度。
解决方案
推荐阅读
- javascript - Vuejs中如何将css应用到劣等类
- c# - 防止机器人自动启动主对话框
- python - 在python中从二进制转换为文本
- javascript - 空白页:Python 中的 Selenium Chrome 自动化
- php - 上传不同属性的多个文件
- javascript - 如何将函数签名限制为仅接受特定的类型参数对
- mysql - mysql ORDER BY CASE 未返回预期结果
- javascript - 错误:“[vuex] 不要在突变处理程序之外改变 vuex 存储状态。”
- sql-server - 如何在 SQL Server 2008 中进行布尔字符串比较
- sql - MS SQL Server 上是否有用于动态列表或多个字符串集的 LIKE 运算符?