带有阴影的Android drawArc

时间:2013-01-23 01:17:47

标签: android android-canvas android-ui

我有一个问题,当我绘制弧时,阴影图层没有被绘制。这是我的Paint对象:

circlePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
circlePaint.setStrokeWidth(strokeWidth);
circlePaint.setColor(Color.WHITE);
circlePaint.setStyle(Paint.Style.STROKE);
circlePaint.setShadowLayer(shadowRadius, 0, shadowOffset, 0xFF000000);

onDraw()

canvas.drawArc(rect, 0, 180, false, circlePaint);

我感觉shadowLayer被忽略了。还有其他方法可以在椭圆周围画一个阴影吗?问题是,椭圆形的调整大小(如在高度变大),所以我不能只使用九个补丁。

2 个答案:

答案 0 :(得分:2)

如果启用了硬件加速,

Paint.setShadowLayer仅适用于文本。要解决此问题,您只需禁用此特定视图的硬件加速。

答案 1 :(得分:0)

如果您希望保持视图硬件加速,可以使用阴影层将弧绘制到屏幕外位图,然后将该位图绘制到画布上。