【问题标题】:blackberry 5.0 api image mask/background image positionblackberry 5.0 api 图像遮罩/背景图像位置
【发布时间】:2011-06-16 15:56:15
【问题描述】:

我刚刚开始学习开发黑莓应用程序,但遇到了一些障碍。我不确定如何在比应用它的字段/管理器大的背景图像周围移动。这是一张图片来说明我的意思:

到目前为止,我已经尝试将 Bitmap 添加到 AbsolutePositionManager 内的 BitmapField 中,我认为我可以设置绝对值的大小经理,只需在其中移动位图字段。事实并非如此,管理只是获取其中内容的大小:(

我来自前端网络开发背景,所以我正在寻找的东西类似于 css 中的“背景位置”属性或某种图像掩码。

提前致谢!

-- 更新--

这是我必须要做的代码示例。我现在有一个自定义大小的管理器,可以显示一大块更大的 BitmapField。我只需要一种方法来移动那个 BitmapField。

打包我的包裹; 导入 net.rim.device.api.system.Bitmap; 导入 net.rim.device.api.ui.component.BitmapField; 导入 net.rim.device.api.ui.container.AbsoluteFieldManager; 公共类 MyImage 扩展 AbsoluteFieldManager { 受保护的无效子布局(int maxWidth,int maxHeight){ int displayWidth = 326; int displayHeight = 79; super.sublayout(displayWidth, displayHeight); 设置范围(显示宽度,显示高度); } 公共我的图像(){ 位图_image = Bitmap.getBitmapResource("img.jpg"); BitmapField image = new BitmapField(_image); 添加图片); } }

【问题讨论】:

    标签: blackberry blackberry-eclipse-plugin blackberry-jde


    【解决方案1】:

    与其将其添加为字段,不如将其引用存储在 Manager 中的某个位置,然后自行绘制。这是一个未经测试的示例:

    public class MyManager extends VerticalFieldManager() {
        Bitmap _bg;
        public MyManager() {
            _bg = Bitmap.getBitmapResource("img.jpg");
        }
    
        protected void paint(Graphics graphics) {
            graphics.drawBitmap(x_offset, y_offset, _bg.getWidth(), _bg.getHeight(), _bg, 0, 0);
            super.paint(graphics);
        }
    
    }
    

    现在您只需将 x_offset 和 y_offset 设置为您想要的任何值,它就会被移动。如果您需要弄乱 Manager 的大小以适合 Bitmap,请添加:

    protected void sublayout(int width, int height) {
        super.sublayout(width, height);
        setExtent(Math.min(width, Math.max(getWidth(), _bg.getWidth())), Math.min(height, Math.max(getHeight(), _bg.getHeight()));
    }
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-07
      • 2012-09-04
      • 1970-01-01
      • 2022-10-23
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 2018-05-29
      相关资源
      最近更新 更多