如何将图像转换为黑莓并设置onClick侦听器?
我对编程Blackberry颇为陌生,想知道是否有人知道关于如何将图像加载到屏幕并设置onClick监听器的教程或代码片段?如何将图像转换为黑莓并设置onClick侦听器?
编辑,走到这一步:
ButtonField btf1 = new ButtonField("Fine!");
ButtonField btf2 = new ButtonField("Great!");
RichTextField rtf = new RichTextField("HELLO, HOW ARE YOU?");
Bitmap LOGO = Bitmap.getBitmapResource("1.png");
BitmapField LogoBmpField = new BitmapField(LOGO);
HelloWorldScreen()
{
setTitle("My First App");
add(rtf);
add(btf1);
add(btf2);
add(LogoBmpField);
}
谢谢!
编辑:顺便说一句,接口应该如何制作黑莓手机?只需
ButtonField btf1 = new ButtonField("Fine!");
add(btf1);
还是有一些可见的方式,如XML的Android?
还有一件事,我如何改变或设置一些对象的属性。假设我想更改我的button-btf1的标题(期望可用属性列表出现)不会给任何东西。
将你的图片放在你的res文件夹中,试试这个;
Bitmap bmpLogo = Bitmap.getBitmapResource("yourImage.jpg");
BitmapField logo = new BitmapField(bmpLogo){
protected boolean trackwheelClick(int status, int time)
{
// Your onclick code here
return true;
}
};
add(logo);
1)您需要使BitmapField
为可重点。
我只是尝试这样做:
BitmapField LogoBmpField = new BitmapField(LOGO, BitmapField.FOCUSABLE) {
protected boolean trackwheelClick(int status, int time) {
System.out.println(" -- You clicked me! ");
return true;
}
};
,它似乎工作。
2),并改变你的按钮上的文本使用 setLabel()
btf1.setLabel("new button text");
看起来很有针对性的风格! – gkane
public class MyScreen extends MainScreen {
public LanguageSelector() {
Bitmap logoBitmap = Bitmap.getBitmapResource("normalarabflag.png");
BitmapField LogoBmpField = new BitmapField(logoBitmap, BitmapField.FOCUSABLE | Field.FIELD_HCENTER) {
protected boolean navigationClick(int status, int time) {
System.out.println(" -- You clicked me! ");
UiApplication.getUiApplication().pushScreen(new SecoundScreen());
Dialog.alert("Load Complete");
return true;
}
};
LabelField labelfield = new LabelField("Arabic ",Field.FIELD_HCENTER|LabelField.FOCUSABLE);
VerticalFieldManager vrt=new VerticalFieldManager(USE_ALL_WIDTH) {
protected void sublayout(int maxWidth, int maxHeight) {
super.sublayout(Display.getWidth(),Display.getHeight());
setExtent(Display.getWidth(),Display.getHeight());
}
};
Font f=labelfield.getFont();
int hight1=f.getAdvance(labelfield.getText());
int k=labelfield.getPreferredHeight();
int number=hight1/Display.getWidth()+1;
int hight2=logoBitmap.getHeight();
int padding=(Display.getHeight()-((number*k)+hight2))/2;
if(padding>0) {
LogoBmpField.setPadding(padding,0,0,0);
}
vrt.add(LogoBmpField);
vrt.add(labelfield);
add(vrt);
}
}
仅发布相关部分来回答问题。 –
代码似乎不是非常清楚或非常深思熟虑。它也显示了对BlackBerry UI并发症的一点理解,在生产程序中使用此代码时我会小心谨慎。 –
谢谢!不适用于BitmapField,但适用于ButtonField。 :) – Roger
请参阅上面的修改。 – Roger
哦,看起来像BitmapField不是trackwheelClick,onscreenClick方法有什么样吗? – Roger