Android 如何在具有许多图形形状的自定义视图上创建边框

Android 如何在具有许多图形形状的自定义视图上创建边框,android,android-custom-view,Android,Android Custom View,我想将边框应用于此自定义视图形状 它是由许多人在onDraw()中绘制的 我要创建并应用于自定义视图的边框应始终具有相等的范围,与自定义视图保持一定距离,并且还应覆盖每个切片中的小圆 知道怎么做吗? 谢谢。这与其说是一个答案,不如说是一个建议。看看你可以使用的波特-达夫模式。最坏的情况下,您可能需要执行一些每像素图像处理,只要视图未设置动画,这些操作就可以了 再想一想,这里有一个想法:为什么不创建两个图像:一个大圆圈总是画在所有事物后面,另一个总是画在小圆圈后面。大圆将只是您希望显示的完整边框

我想将边框应用于此自定义视图形状

它是由许多人在
onDraw()中绘制的

我要创建并应用于自定义视图的边框应始终具有相等的范围,与自定义视图保持一定距离,并且还应覆盖每个切片中的小圆

知道怎么做吗?
谢谢。

这与其说是一个答案,不如说是一个建议。看看你可以使用的波特-达夫模式。最坏的情况下,您可能需要执行一些每像素图像处理,只要视图未设置动画,这些操作就可以了

再想一想,这里有一个想法:为什么不创建两个图像:一个大圆圈总是画在所有事物后面,另一个总是画在小圆圈后面。大圆将只是您希望显示的完整边框,而小圆实际上只是半圆边框,它将在大圆的顶部渲染(覆盖大圆下方的大圆边框)。关键是根据小边界圆的位置旋转它。我觉得这很有道理,但它应该是有效的,而且效率也很高

另一个选项是将渲染分为白色圆圈和稍大的边框颜色圆圈。如果先渲染稍大的(边框颜色)圆,然后再渲染顶部的正常圆(白色),则不必担心任何旋转,并且如果小的外部圆开始重叠,它将正确渲染。 因此,这个想法与第一个建议类似。您仍然需要一个大圆圈和一个小圆圈(都是白色的),但除此之外,您还需要稍微大一点的边框颜色的大圆圈和小圆圈

我希望这个描述能更清楚一点,但我假设你对复合式可拉丝布已经足够适应了,考虑到你在表达观点方面已经走了这么远


尽可能最好地实现它,并随时要求任何澄清!:)

对于方案2,大圆边界是否存在问题?在小圆边界和小圆本身之间的间隙处,小圆是否覆盖了大圆边界?好的,我认为将方案2与Porter Duff结合使用会有效。谢谢,明天我会尝试更新这篇文章,因为我不需要在手机上打字。选项2不应该有任何渲染问题,但我将在后面描述。对不起。@Qadir不,这是一个直接使用画布的自定义视图绘制。