【问题标题】:Android Canvas drawRect function doesn't show paint shadowAndroid Canvas drawRect 函数不显示绘制阴影
【发布时间】:2015-12-29 17:32:39
【问题描述】:

我正在尝试使用 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 的阴影工作?

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

谢谢

【问题讨论】:

    标签: java android canvas shadow


    【解决方案1】:

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

    this.setLayerType(View.LAYER_TYPE_SOFTWARE, paint);
    

    【讨论】:

    • 每次抽奖都需要使用吗?当我创建所需的 Paint 时,我已经在上面的代码中调用了该函数。
    • 您发布的代码中有 LAYER_TYPE_HARDWARE
    • 就可以了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 2017-09-06
    • 2015-08-22
    • 2015-02-13
    • 1970-01-01
    • 2010-11-16
    • 2016-08-06
    相关资源
    最近更新 更多