我有一个问题,当我绘制弧时,阴影图层没有被绘制。这是我的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被忽略了。还有其他方法可以在椭圆周围画一个阴影吗?问题是,椭圆形的调整大小(如在高度变大),所以我不能只使用九个补丁。
答案 0 :(得分:2)
Paint.setShadowLayer
仅适用于文本。要解决此问题,您只需禁用此特定视图的硬件加速。
答案 1 :(得分:0)
如果您希望保持视图硬件加速,可以使用阴影层将弧绘制到屏幕外位图,然后将该位图绘制到画布上。