【问题标题】:How can I add shadow to the text in a Blackberry LabelField?如何为 Blackberry LabelField 中的文本添加阴影?
【发布时间】:2012-12-16 07:38:01
【问题描述】:

我已经尝试在我自己的扩展 LabelField 的类中覆盖 paint() 方法,但如果有其他更简单的方法,我会忽略。

我的代码:

protected void paint(Graphics graphics) {
    int previousColor = graphics.getColor();
    graphics.setColor(0xFFFFFF);
    graphics.drawText(getText(), 2, -2);
    graphics.setColor(previousColor);
    super.paint(graphics);
}

我想要实现的是:

编辑:answer by Abhisek 产生以下结果,以防有人感兴趣:

【问题讨论】:

    标签: blackberry java-me


    【解决方案1】:

    如果Abhishek's answer不起作用,可以尝试直接在paint方法中进行。这很简单,只需以 bg 颜色绘制一次,然后以 fg 颜色在其上再次绘制(向下几个像素并离开之前的文本)。像这样的:

        protected void paint(Graphics graphics) {
            graphics.setColor(0xFFFFFF);
            graphics.drawText(getText(), 2, 0);
            graphics.setColor(0x000000);
            graphics.drawText(getText(), 0, 2);
        }
    

    请注意您需要 2 个额外的高度和宽度像素,因此您可能必须覆盖 getPreferredWidthgetPreferredHeight 和/或 layout

    【讨论】:

      【解决方案2】:

      暗中尝试,但尝试使用Font.derive(style, height, units, aAntialiasMode, aEffects) 派生字体,在aEffects 参数中传递Font.DROP_SHADOW_RIGHT_EFFECT 并将其应用于相关字段。

      请告诉我们它是否有效;我没有使用它,因为它没有记录!

      【讨论】:

      • 感谢您的建议。使用Font.DROP_SHADOW_RIGHT_EFFECT 实际上会产生一个文本阴影,但与文本颜色相同,并且仅在右下方向。
      猜你喜欢
      • 1970-01-01
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多