【发布时间】:2015-06-03 19:16:30
【问题描述】:
我有以下屏幕:
class DemoScreen extends MainScreen {
private LabelField lbl1, lbl2, lbl3, lbl4, lbl5;
private BitmapField bf;
private ButtonField btn;
private String IMG_URL = "http://www.foo.bar/img/blah.jpg";
public DemoScreen(){
bf = new BitmapField(Bitmap.getBitmapResource("img/blank.png");
btn = new ButtonField("Click me", FOCUSABLE | ButtonField.CONSUME_CLICK);
add(lbl1);
add(lbl2);
add(bf);
add(lbl3);
add(lbl4);
add(lbl5);
add(btn);
}
public void updateBitmap(){
UiApplication.getUiApplication.invokeLater()(new Runnable(){
public void run(){
Bitmap bmp = BitmapUtil.loadBitmapFromURL(IMG_URL);
bf.setBitmap(bmp);
}
});
}
}
一眼看代码,当屏幕显示时,首先会加载一个空白图像,然后将替换为从 URL 加载的真实图像。此代码在模拟器上按预期工作。但在真实设备上,有一个怪癖:在加载图像之前(通过 BitmapUtil.loadBitmapFromURL),屏幕无法滚动。
我尝试将 updateBitmap 部分更改为:
public void updateBitmap(){
UiApplication.getUiApplication.invokeLater()(new Runnable(){
public void run(){
Bitmap bmp = BitmapUtil.loadBitmapFromURL(IMG_URL);
bf.setBitmap(bmp);
}
});
}
和
public void updateBitmap(){
synchronized(UiApplication.getEventLock()){
Bitmap bmp = BitmapUtil.loadBitmapFromURL(IMG_URL);
bf.setBitmap(bmp);
}
}
它们都不起作用。有没有办法在图像加载仍在进行时使屏幕可滚动? T
顺便说一句,这是图片加载部分:
【问题讨论】:
标签: blackberry