【问题标题】:Can you overlay transparent images in Blackberry Apps?您可以在黑莓应用程序中叠加透明图像吗?
【发布时间】:2011-03-05 17:32:04
【问题描述】:

我有一个非常简单的应用程序,它只有一个屏幕和一个按钮。主屏幕有一个verticalFieldManager,里面有一个BitmapField,在位图下面有一个按钮。当用户单击按钮时,我希望能够在其上覆盖另一个图像。叠加图像是具有透明背景的 PNG,这对设计很重要,所以我不能使用 popupscreen 或新屏幕,因为默认情况下背景总是白色,而且我听说 alpha 并不能真正做到这一点.

我想我要问的是是否有人知道一种简单的方法来...

A) 采用标准的verticalFieldManager 并在内部内容之上覆盖PNG

B) 在屏幕上覆盖一个 PNG,无论内容如何

此应用程序的基本功能旨在 - 显示图像。单击时,显示另一个覆盖在顶部。再次点击时,删除弹出图像。

我没有在网上找到任何可以解决此类问题的内容,但我读到有人在做类似的事情,以我不需要的方式利用弹出屏幕和新屏幕。

希望这是有道理的。 谢谢

【问题讨论】:

    标签: image blackberry overlay


    【解决方案1】:

    您是否在覆盖屏幕的自定义类中尝试过类似的操作?

    EncodedImage _overlayImage;
    boolean _overlay = false;
    
    // this is to catch the click, you might do it different
    public void fieldChanged(Field field, int context)
    {
        if (field == _imgChangeButton) {
            // get the overlay image here, however you want
            _overlayImage = getEncodedImageResource(blah);
            _overlay = true;
            invalidate();
        }
    }
    
    protected void paint(Graphics graphics) {
        super.paint(graphics);
    
        if (_overlay) {
            graphics.drawImage(...);
        }
    }
    

    如果 PNG 具有透明度,bb drawImage 的东西应该可以处理它。显然,在 drawImage 调用中,您可以找到现有图像并将 x,y 设置在其顶部。

    一般来说,我会说在你尝试对另一个屏幕做任何事情之前,先用 paint() 做很多测试并直接弄乱图形。你可以为屏幕做很多覆盖paint()...你得到整个图形。

    【讨论】:

      猜你喜欢
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多