7
A
回答
1
看来它无法控制行程(即,内,中心或外面)的位置。欲了解更多信息请参阅:在绘制例如 Android Paint stroke width positioning
我的解决办法偏移笔划宽度,
final RectF rectF = new RectF(halfStrokeWidth, halfStrokeWidth, width - halfStrokeWidth, height - halfStrokeWidth);
canvas.drawRoundRect(rectF, roundX, roundY, paint);
1
可以使用CornerPathEffect类的帮助!以一个圆形的形状为例。
在使用canvas.drawRoundRect()方法绘制具有半径的背景色并使用Paint设置Style.FILL时,您可以获得圆形矩形形状。然后使用相同的方法用Style.STROKE和paint的设置宽度在其上绘制圆形矩形边框,即可获得边框。
代码:
mBackgroundRectF.set(0, 0, mWidth, mHeight);
canvas.drawRoundRect(mBackgroundRectF, mRadius, mRadius, mBackgroundPaint);
// edge ajustment because paint stroke style is center align
float edge = mBorderWidth/2;
mBackgroundRectF.set(edge, edge, mWidth - edge, mHeight - edge);
canvas.drawRoundRect(mBackgroundRectF, mRadius, mRadius, mBorderPaint);
现在看起来,这不是一个我想这也有一定的背景和边框之间的偏移:
让我们尝试CornerPathEffect:
mBackgroundRectF.set(0, 0, mWidth, mHeight);
canvas.drawRoundRect(mBackgroundRectF, mRadius, mRadius, mBackgroundPaint);
// edge ajustment because paint stroke style is center align
float edge = mBorderWidth/2;
mBackgroundRectF.set(edge, edge, mWidth - edge, mHeight - edge);
// use CornerPathEffect and then use drawRect() method
mBorderPaint.setPathEffect(new CornerPathEffect(mRadius/2));
canvas.drawRect(mBackgroundRectF, mBorderPaint);
现在看起来正确:
+0
双倍的疼痛笔划宽度可以解决问题! – YXP
1
使用Canvas#clipPath(Path, Op)
。但请注意,Android 3.0和reintroduced in 4.3中删除了对硬件加速画布中路径的剪辑支持。对于3.0-4.2,显然有workaround,但我没有办法测试它。
相关问题
- 1. 笔画的内部和外部路径
- 2. Android路径内部存储
- 3. 将笔画与路径进行比较
- 4. KineticJs手写选择路径/笔画
- 5. SVG - 创建不同合并路径的外部笔画
- 6. 笔画可以用作SVG剪辑路径的一部分吗?
- 7. 清除HTML5画布中的笔划路径(循环内)
- 8. 内部路径与HTTP路径
- 9. 内部路径长度
- 10. Android TextView多笔画
- 11. Android MediaStore.ACTION_VIDEO_CAPTURE,外部路径?
- 12. Android外部库路径
- 13. 路径动画
- 14. 动画路径?
- 15. 如何在android中获取内部和外部sdcard路径
- 16. 具有上升笔画宽度的路径
- 17. javafx碰撞问题的路径(行)与粗笔画和圆圈
- 18. 如何绘制一个可变的笔画宽度的路径
- 19. 如何用图像中的画笔填充路径
- 20. D3在鼠标悬停时改变路径笔画颜色
- 21. SVG中相邻路径上的重叠/虚线笔画
- 22. 如何让SVG路径的笔画获取背景图片?
- 23. html svg模式作为画笔从路径中风
- 24. (Android)在内部存储器中查找路径/ Android
- 25. 如何找到内部SD卡路径?
- 26. Android画布路径实时性能
- 27. 在Android中设置动画路径?
- 28. Android开画廊图像URI路径
- 29. 如何动态调整带有动画笔画厚度的矩形路径?
- 30. 动画WPF路径
我不明白这个问题,你能更具体吗?你的意思是说“所有的中风都在路径之内,而不是一半的中风和一半的外部”? – Marek
假设我绘制了一个黑色为10像素宽度的笔画,然后用红色为5像素宽度的笔画绘制形状,那么红色路径将是黑色路径宽度的一半,并且将会是在中间,因为一半的行程将在形状边界内,一半在外面。相反,我想要的是整个笔画在形状边界内。在上面的例子中,这意味着红色笔划将位于黑色笔划的一侧,最靠近形状边界的一侧 – user2430147