【问题标题】:displaying images on the UI from a background thread in blackberry从黑莓中的后台线程在 UI 上显示图像
【发布时间】:2012-02-07 11:46:43
【问题描述】:

我正在寻找一种从后台线程在我的 UI 上显示图像的方法。该后台线程以字节数组的形式接收流图像。我需要在我的 UI 上显示它 请问有人可以帮忙吗?

我已经尝试从后台线程访问位图字段,但没有任何反应

谢谢

        bmp = Bitmap.createBitmapFromBytes(jpegBytes, 0, jpegBytes.length, 1);


        final Bitmap bit = bmp;
        final byte [] jp = jpegBytes;
        UiApplication.getUiApplication().invokeLater(new Runnable() {
            public void run() 
            {                   
                camView.jpegBytes = jp;
                System.out.println(bit);
                camView.bmpStream.setBitmap(bit);
                //camView.bmpStream.
            }
        });

【问题讨论】:

  • 你能贴出你试过的代码吗?

标签: multithreading image blackberry user-interface background


【解决方案1】:

如果您需要更改主屏幕意味着如果您需要从后台线程向主屏幕添加字段,您需要调用

invalidate();

重绘屏幕的方法,否则屏幕不会发生任何变化

例如:

 UiApplication.getUiApplication().invokeLater(new Runnable() {
            public void run() 
            {                   
                camView.jpegBytes = jp;
                System.out.println(bit);
                camView.bmpStream.setBitmap(bit);
                 invalidate();
                //camView.bmpStream.
            }
    });

【讨论】:

  • 是不是有点像screen.invlaidate?
  • 嗨,Richard,我已经尝试过了,但它对我不起作用...真的可以从后台线程替换您的 UI 组件吗?我在我的代码中记录了一些日志,它似乎贯穿了替换部分,但 UI 没有得到更新!有什么帮助吗?
【解决方案2】:

大家好,我设法找到了我在使用对父类的引用时遇到的问题。如果您有对主类的引用,我在问题中发布的上述代码就完美了。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多