FILL_AND_STROKE有什么作用?

41

我正在尝试使用Android图形类。 我想绘制一些带填充颜色和黑色轮廓的圆弧/圆形。 Paint类有一个FILL_AND_STROKE样式,但似乎没有办法设置填充颜色与描边颜色。那么据我所知,它与FILL相同吗?

那么如果无法设置单独的填充和描边颜色,FILL_AND_STROKE有什么意义呢? 我还没有找到一个好的解释。

(我通过先填充再描边来解决了我的简单问题)

编辑: 我遇到了这个bug报告:http://code.google.com/p/android/issues/detail?id=4086

评论4和5似乎意味着FILL_AND_STROKE基本上与FILL相同,并且将在2.2中“修复”。 我猜他们会添加一种新颜色?

5个回答

34

afaik: FILL会填充您的圆圈,而FILL_AND_STROKE还会绘制边框。如果您增加笔画的大小,应该会导致不同大小的圆(仅视觉效果!)

想象一下:您用小铅笔手绘一个圆形。半径正是你想要的。现在,如果您拿起大刷子再次画圆,您的半径将大得多...(希望我的表述可以理解O.o)


9
如果不能为填充和描边设置不同的颜色,那就有点傻了。 - Ehtesh Choudhury
4
重复操作会对性能产生影响吗?我一直在先绘制填充,然后再描边来解决这个问题,但是我想通过设置边框颜色来找到解决方法。这仍然无法实现吗? - IAmGroot
你如何设置圆形周围的描边颜色?它适用于位图吗?即使是具有形状的位图呢?那文字呢? - android developer
画两次是对半透明颜色的不良解决方法。 - Alexander Farber

21

我猜 FILL_AND_STROKE 特别有用,如果想要在 STROKEFILL 之间进行动画,同时希望保留绘制对象的大小。

我举个例子,下面的第一个是在 FILL_AND_STROKESTROKE 之间进行动画,而第二个只是在 FILLSTROKE。你可以很容易地看到大小缩小了。

enter image description here

因此,FILL_AND_STROKE 在这里非常方便,可以使大小与具有STROKE的其他对象尽可能一致,而无需手动调整绘制对象的大小(这很复杂)。

6
是的,这有点儿傻。唯一的用途是如果您想在描边和实心圆之间切换,那么可以使用FILL_AND_STROKE来保持圆的大小不变。
如果您从STROKE转到FILL,则在再次绘制圆时会失去描边的宽度。

1
如果你的描边样式与实线不同(例如虚线),你应该能够看到区别。尽管它似乎不是一个非常有用的功能。
然而,能够将某物(比圆形更复杂)的轮廓向外延伸可能非常有用,并且难以通过其他方式获得。

-1
请查看@Shurane的评论。
只需绘制两次,一次填充,一次描边,每个都用一种颜色。
对我来说效果很好,并给人以描边和填充的印象!

不,这对于半透明颜色并不起作用。 - Alexander Farber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接