1

我有一个问题,当我绘制弧线时,没有绘制阴影层。这是我的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 只是被忽略了。有没有其他方法可以在椭圆周围绘制阴影?问题是,椭圆得到了调整大小(因为高度变大了),所以我不能只使用 Ninepatch。

4

2 回答 2

2

Paint.setShadowLayer如果启用了硬件加速,则仅适用于文本。要解决此问题,您只需为此特定视图禁用硬件加速即可。

于 2013-01-23T02:09:36.307 回答
0

如果您想保持视图硬件加速,您可以将带有阴影层的弧线绘制到屏幕外位图中,然后将该位图绘制到您的画布上。

于 2013-03-19T04:59:43.437 回答