Blackberry 如何添加时间延迟
我试图在两个图像之间切换。 在我的应用程序中,有一个图像,当单击此图像时,另一个图像在一秒钟内出现,并且前一个图像出现在同一位置。过渡需要对用户可见 我的代码是Blackberry 如何添加时间延迟,blackberry,Blackberry,我试图在两个图像之间切换。 在我的应用程序中,有一个图像,当单击此图像时,另一个图像在一秒钟内出现,并且前一个图像出现在同一位置。过渡需要对用户可见 我的代码是 import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import net.rim.device.api.ui.UiApplication; import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.TouchEvent;
class aaa extends UiApplication
{
public aaa()
{
pushScreen(new bbb());
}
public static void main(String args[])
{
aaa theApp= new aaa();
theApp.enterEventDispatcher();
}
}
class bbb extends MainScreen
{
boolean flag=true;
BitmapField refresh1,refresh2;
HorizontalFieldManager hfm;
public bbb()
{
hfm= new HorizontalFieldManager(HorizontalFieldManager.FIELD_RIGHT);
refresh2= new BitmapField(Bitmap.getBitmapResource("refresh_depressed.png"));
refresh1= new BitmapField(Bitmap.getBitmapResource("refresh.png"))
{
protected boolean touchEvent(TouchEvent message)
{
if ( message.getEvent() == TouchEvent.CLICK )
{
synchronized (UiApplication.getUiApplication().getAppEventLock())
{
if(flag)
{
hfm.delete(refresh1);
hfm.add(refresh2);
flag = false;
}
else
{
hfm.delete(refresh2);
hfm.add(refresh1);
flag=true;
}
return true;
}
}
return super.touchEvent(message);
}
};
hfm.add(refresh1);
add(hfm);
}
}
确保在删除/添加任何字段后调用
invalidate()
,以便重新绘制屏幕并显示更改 确保在删除/添加任何字段后调用invalidate()
,以便重新绘制屏幕并显示更改 请在eventlock
中添加和删除字段
我已经更新了你的代码,如下所示
boolean flag = false;
public bbb()
{
hfm= new HorizontalFieldManager(HorizontalFieldManager.FIELD_RIGHT);
Bitmap refresh2 = Bitmap.getBitmapResource("refresh_depressed.png"));
Bitmap refresh1= Bitmap.getBitmapResource("refresh.png");
BitmapField bfield = new BitmapField(refresh2)
{
protected boolean touchEvent(TouchEvent message)
{
if ( message.getEvent() == TouchEvent.CLICK )
{
synchronized (UiApplication.getUiApplication().getAppEventLock())
{
if(flag)
{
bfield.setBitmap(refresh1);
flag = false;
}
else
{
bfield.setBitmap(refresh2);
flag=true;
}
return true;
}
}
return super.touchEvent(message);
}
};
hfm.add(bfield);
add(hfm);
}
请执行添加
和删除
事件锁定
中的字段
我已经更新了你的代码,如下所示
boolean flag = false;
public bbb()
{
hfm= new HorizontalFieldManager(HorizontalFieldManager.FIELD_RIGHT);
Bitmap refresh2 = Bitmap.getBitmapResource("refresh_depressed.png"));
Bitmap refresh1= Bitmap.getBitmapResource("refresh.png");
BitmapField bfield = new BitmapField(refresh2)
{
protected boolean touchEvent(TouchEvent message)
{
if ( message.getEvent() == TouchEvent.CLICK )
{
synchronized (UiApplication.getUiApplication().getAppEventLock())
{
if(flag)
{
bfield.setBitmap(refresh1);
flag = false;
}
else
{
bfield.setBitmap(refresh2);
flag=true;
}
return true;
}
}
return super.touchEvent(message);
}
};
hfm.add(bfield);
add(hfm);
}
你好另一个问题。此图像现在在屏幕上不可见,您只需使用refresh=new位图字段(Bitmap.getBitmapResource(“res/refresh.png”);刷新1和刷新2在哪里。并从gerBitmapResource(“..”)中删除“res/”;嘿,我做完了。。这些错误并没有在我的实际代码中删除,我已经。。但是仍然没有得到这种效果。问题是只有一种效果是可见的,而另一种效果是不可见的。。i、 第二张图片就要出现了,请给我你创建的整个类。我想添加删除,然后在单击一次后再次添加这两个字段。嗨。。另一个问题。此图像现在在屏幕上不可见,您只需使用refresh=new位图字段(Bitmap.getBitmapResource(“res/refresh.png”);刷新1和刷新2在哪里。并从gerBitmapResource(“..”)中删除“res/”;嘿,我做完了。。这些错误并没有在我的实际代码中删除,我已经。。但是仍然没有得到这种效果。问题是只有一种效果是可见的,而另一种效果是不可见的。。i、 e.第二个图像即将出现请给我您创建的整个类。我想添加删除,然后在单击一次后再次添加这两个字段。您只需在refresh1位图中声明touchEvent。因此,请在refresh2中执行相同的操作。您只需在refresh1位图中声明touchEvent。所以请在refresh2中做同样的事情。