Android Canvas drawRect 函数不显示绘画阴影

Android Canvas drawRect function doesn't show paint shadow

我正在尝试使用 Android 的 onDraw 函数绘制矩形和线条,并在其周围添加阴影,以便在白色背景上可以看到它们。我已将我的 Paint 设置为具有阴影层,但绘制线条时没有阴影。

这是我的 Paint 代码:

paint = new Paint();
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.FILL);
paint.setTextSize(m_textSize);
paint.setAntiAlias(true);
Typeface font = Typeface.create("Times New Roman", Typeface.NORMAL);
paint.setTypeface(font);
paint.setShadowLayer(5, 0, 0, Color.BLACK);
this.setLayerType(View.LAYER_TYPE_HARDWARE, paint);

这是我的绘图代码:

private void drawMark(Canvas c, float y, float size)
    {
    float x = (float) (getWidth()-5.0-size);
    c.drawRect(x, y, x + size, y + markHeight, paint);
    }

我是否缺少使 drawRect 的阴影工作的东西?

请注意,我也在使用 canvas 绘制文本,文本确实有阴影效果,但形状和线条没有。

谢谢

只有在软件模式下绘图时才会出现阴影:

this.setLayerType(View.LAYER_TYPE_SOFTWARE, paint);