Blackberry 在ui屏幕本身中加载指示,不使用单独屏幕或弹出窗口
我想在用户请求一些http连接时显示加载屏幕。我从stackoverflow和google获得了一些很好的示例,但它们都使用单独的屏幕显示加载屏幕。我想在用户请求http连接的同一屏幕中显示加载屏幕。Blackberry 在ui屏幕本身中加载指示,不使用单独屏幕或弹出窗口,blackberry,blackberry-eclipse-plugin,blackberry-jde,Blackberry,Blackberry Eclipse Plugin,Blackberry Jde,我想在用户请求一些http连接时显示加载屏幕。我从stackoverflow和google获得了一些很好的示例,但它们都使用单独的屏幕显示加载屏幕。我想在用户请求http连接的同一屏幕中显示加载屏幕。 如果有人有想法,请与我分享,提前谢谢。我通常在主屏幕的状态部分使用仪表字段。使用setStatus(Field)方法进行设置。如果您正在为OS v6.0开发,则RIM已提供用于进度指示的api 对于下面的OS v6.0,下面的代码可能有助于u.i.e ProgressAnimationField,
如果有人有想法,请与我分享,提前谢谢。我通常在主屏幕的状态部分使用仪表字段。使用setStatus(Field)方法进行设置。如果您正在为OS v6.0开发,则RIM已提供用于进度指示的api 对于下面的OS v6.0,下面的代码可能有助于u.i.e ProgressAnimationField,它是一个自定义字段,采用位图微调器/加载程序img、其num帧和样式
import net.rim.device.api.system.*;
import net.rim.device.api.ui.*;
/**
* Custom class for spinner animation
*/
public class ProgressAnimationField extends Field implements Runnable
{
private Bitmap _bitmap;
private int _numFrames;
private int _frameWidth;
private int _frameHeight;
private int _currentFrame;
private int _timerID = -1;
private Application _application;
private boolean _visible;
public ProgressAnimationField( Bitmap bitmap, int numFrames, long style )
{
super( style | Field.NON_FOCUSABLE );
_bitmap = bitmap;
_numFrames = numFrames;
_frameWidth = _bitmap.getWidth() / _numFrames;
_frameHeight = _bitmap.getHeight();
_application = Application.getApplication();
}
public void run()
{
if( _visible ) {
invalidate();
}
}
protected void layout( int width, int height )
{
setExtent( _frameWidth, _frameHeight );
}
protected void paint( Graphics g )
{
g.drawBitmap( 0, 0, _frameWidth, _frameHeight, _bitmap, _frameWidth * _currentFrame, 0 );
_currentFrame++;
if( _currentFrame >= _numFrames ) {
_currentFrame = 0;
}
}
protected void onDisplay()
{
super.onDisplay();
_visible = true;
if( _timerID == -1 ) {
_timerID = _application.invokeLater( this, 200, true );
}
}
protected void onUndisplay()
{
super.onUndisplay();
_visible = false;
if( _timerID != -1 ) {
_application.cancelInvokeLater( _timerID );
_timerID = -1;
}
}
}