如何在一张图像中绘制曲线和直线?

堆栈

我正在尝试绘制基本上是圆形的矩形,在其一端画一个正方形。有点像电池。我有一些限制,基本上这只能使用一个绘画对象来完成,并且应该能够支持笔划。

这是我到目前为止的代码:

int width = 0;
int height = 0;

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    // myPath outline
    Point[] myPath = { new Point(20, 20), new Point(width, 20), new Point(width, height), new Point(20, height),
            new Point(20, height - 20), new Point(0, height - 20), new Point(0, height - 40),
            new Point(20, height - 40) };

    // Paint
    Paint paint = new Paint();
    int color = 0xffff0000;
    paint.setColor(color);
    paint.setAntiAlias(true);
    // paint.setPathEffect(new CornerPathEffect(15));
    paint.setStyle(Paint.Style.FILL);

    // Path moves
    Path path = new Path();

    path.moveTo(myPath[0].x, myPath[0].y);
    int j = myPath.length;
    for (int i = 0; i < j; i++) {
        path.lineTo(myPath[i].x, myPath[i].y);
    }
    path.close();

    Bitmap toDrawOn;
    toDrawOn = Bitmap.createBitmap(getWidth(), getHeight(), Config.ARGB_8888);
    Canvas ofScreen = new Canvas(toDrawOn);
    ofScreen.drawPath(path, paint);
    canvas.drawBitmap(toDrawOn, 0, 0, paint);

}

这给了我想要的电池形状,但是我不知道如何在不对小方块的角进行最后四角的情况下将前四个角四舍五入。同样,我需要将此形状设为一个形状,因为稍后需要对其进行笔触。我也不能使用9patch,因为我需要以编程方式更改颜色。

这是我的目标:

在此处输入图片说明

ug_

使用path.quadTo (使用javadoc)因为这种形状非常简单,所以我会逐行写出来。这是它的开始。

int borderRadius = 15;
Path path = new Path();
path.moveTo(borderRadius , 0);
path.lineTo(width-borderRadius, 0); // top side
path.quadTo(width, 0, width, borderRadius); // top right corner
path.lineTo(width, height-borderRadius); // right side
path.quadTo(width, height, width-borderRadius, height); // bottom right corner
...
path.close();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在同一张图上绘制来自不同模型的多个学习曲线?

来自分类Dev

如何影响图像悬停时的上一张和下一张图像

来自分类Dev

如何影响图像悬停时的上一张和下一张图像

来自分类Dev

从图库中获取下一张图像和上一张图像

来自分类Dev

如何在一张纸上绘制多个图形

来自分类Dev

如何用cartopy和matplotlib绘制一张图?

来自分类Dev

如何删除第一张和最后一张图像的左右空间?

来自分类Dev

如何使用php中的一张图片绘制形状

来自分类Dev

如何使用drawImage()在canvas中绘制一张图片?

来自分类Dev

如何在电子邮件中附加一张 base64 图像?

来自分类Dev

如何在一张纸上打印四张单张图像,每个角各一张?

来自分类Dev

如何在一张纸上打印四张单张图像,每个角各一张?

来自分类Dev

您如何从图像中裁剪出一张脸?

来自分类Dev

您如何从图像中裁剪出一张脸?

来自分类Dev

如何在Python的一张图中绘制速度分布图和边界厚度分布图?

来自分类Dev

如何在一张图表上绘制具有不同x和y值的多个数据集?

来自分类Dev

如何在同一张图表中制作beanplot和boxplot?

来自分类Dev

如何在Oracle SQL中的同一张表上查找和过滤数据

来自分类Dev

如何在matplotlib中的一张图上绘制由不同日期但时间戳相同的时间序列

来自分类Dev

在一张图像中叠加图片

来自分类Dev

如何在代马家滑块中显示下一张图像的一部分?

来自分类Dev

从屏幕上仅删除一张绘制的图像

来自分类Dev

单击另一张图像时如何隐藏另一张图像顶部的图像

来自分类Dev

如何合并 2 张图像(一张带有形状)并使其在 Canvas 中透明

来自分类Dev

如何在for循环python-pptx中的同一张幻灯片中添加两个或更多图像

来自分类Dev

闪亮:如何在同一张传单地图上绘制多个参数?

来自分类Dev

如何在曲线框html和css中添加垂直线分割和图例?

来自分类Dev

在同一张图表中绘制每日价值和每周平均值

来自分类Dev

在一张图中绘制两条曲线遇到错误(python-pandas-matplotlib)

Related 相关文章

  1. 1

    如何在同一张图上绘制来自不同模型的多个学习曲线?

  2. 2

    如何影响图像悬停时的上一张和下一张图像

  3. 3

    如何影响图像悬停时的上一张和下一张图像

  4. 4

    从图库中获取下一张图像和上一张图像

  5. 5

    如何在一张纸上绘制多个图形

  6. 6

    如何用cartopy和matplotlib绘制一张图?

  7. 7

    如何删除第一张和最后一张图像的左右空间?

  8. 8

    如何使用php中的一张图片绘制形状

  9. 9

    如何使用drawImage()在canvas中绘制一张图片?

  10. 10

    如何在电子邮件中附加一张 base64 图像?

  11. 11

    如何在一张纸上打印四张单张图像,每个角各一张?

  12. 12

    如何在一张纸上打印四张单张图像,每个角各一张?

  13. 13

    您如何从图像中裁剪出一张脸?

  14. 14

    您如何从图像中裁剪出一张脸?

  15. 15

    如何在Python的一张图中绘制速度分布图和边界厚度分布图?

  16. 16

    如何在一张图表上绘制具有不同x和y值的多个数据集?

  17. 17

    如何在同一张图表中制作beanplot和boxplot?

  18. 18

    如何在Oracle SQL中的同一张表上查找和过滤数据

  19. 19

    如何在matplotlib中的一张图上绘制由不同日期但时间戳相同的时间序列

  20. 20

    在一张图像中叠加图片

  21. 21

    如何在代马家滑块中显示下一张图像的一部分?

  22. 22

    从屏幕上仅删除一张绘制的图像

  23. 23

    单击另一张图像时如何隐藏另一张图像顶部的图像

  24. 24

    如何合并 2 张图像(一张带有形状)并使其在 Canvas 中透明

  25. 25

    如何在for循环python-pptx中的同一张幻灯片中添加两个或更多图像

  26. 26

    闪亮:如何在同一张传单地图上绘制多个参数?

  27. 27

    如何在曲线框html和css中添加垂直线分割和图例?

  28. 28

    在同一张图表中绘制每日价值和每周平均值

  29. 29

    在一张图中绘制两条曲线遇到错误(python-pandas-matplotlib)

热门标签

归档