User interface 不同设备的黑莓用户界面
我正在开发一个黑莓应用程序。我有一个标题,你可以在下面的图片中看到,低分辨率,它需要的空间比宽度多,目前在BB Bold 9900模拟器上测试。因此,我尝试使用以下代码来防止UI破坏 问题:User interface 不同设备的黑莓用户界面,user-interface,blackberry,User Interface,Blackberry,我正在开发一个黑莓应用程序。我有一个标题,你可以在下面的图片中看到,低分辨率,它需要的空间比宽度多,目前在BB Bold 9900模拟器上测试。因此,我尝试使用以下代码来防止UI破坏 问题: 这是防止UI破坏的正确代码吗 如果是,那么通过使用此代码,我们如何将按钮向右对齐,将徽标向左对齐 我应该遵循哪种设计/UI来防止在不同分辨率的设备中破坏UI ImageButton Login=newImageButton(configModel.getLoginButton(),可聚焦,“Login.pn
ImageButton Login=newImageButton(configModel.getLoginButton(),可聚焦,“Login.png”,“plogin.png”,0x9cbe95);
HorizontalFieldManager hfm=新的HorizontalFieldManager(Field.Field\u HCENTER);
HorizontalFieldManager kenexaLogoHfm=新的HorizontalFieldManager(hfm.FIELD_左);
HorizontalFieldManager登录按钮hfm=新的HorizontalFieldManager(右hfm.FIELD);
位图logo=Bitmap.getBitmapResource(“logo.png”);
NullField NullField=新的NullField();
BitmapField kenexaLogo=新的BitmapField(徽标);
添加(新的LabelField(“,非聚焦));
kenexaLogoHfm.add(kenexaLogo);
kenexaLogoHfm.add(空字段);
loginButtonHfm.add(Login);
设置填充(0,5,0,5);
hfm.add(kenexaLogoHfm);
添加(登录按钮hfm)
添加(hfm);
下面是ImageButton的代码
公共类ImageButton扩展字段{
//图像按钮类
私有字符串标签;
私人内部标签高度;
专用int_标签宽度;
专用字体(u字体),;
私有位图currentPicture;
私有位图_onPicture;
私人位图(图片);;
内色;
公共图像按钮(字符串文本、长样式、字符串img、字符串img_hvr、int-color){
超级(风格);
_offPicture=Bitmap.getBitmapResource(img);
_onPicture=Bitmap.getBitmapResource(img_hvr);
_font=font.getDefault().derivate(font.BOLD,7,Ui.UNITS\u pt);
_标签=文本;
_labelHeight=_onPicture.getHeight();
_labelWidth=_onPicture.getWidth();
这个颜色=颜色;
_当前图片=_offPicture;
}
公共void setImage(字符串img){
_offPicture=Bitmap.getBitmapResource(img);
_当前图片=_offPicture;
}
/**
*@返回按钮上的文本
*/
公共void setText(字符串文本){
_标签=文本;
}
字符串getText(){
退货标签;
}
/**
*实地执行。
*@请参见net.rim.device.api.ui.Field#getPreferredHeight()
*/
public int getPreferredHeight(){
返回标签高度;
}
/**
*实地执行。
*@请参见net.rim.device.api.ui.Field#getPreferredWidth()
*/
public int getPreferredWidth(){
返回标签宽度;
}
/**
*现场实施。获得焦点后更改图片。
*@see net.rim.device.api.ui.Field#onFocus(int)
*/
受保护的空对焦(整数方向){
_currentPicture=\u onPicture;
//使无效();
超级聚焦(方向);
}
/**
*字段实现。当焦点丢失时更改图片。
*@see net.rim.device.api.ui.Field#onnfocus()
*/
受保护的无效onnfocus(){
_当前图片=_offPicture;
使无效();
super.onnfocus();
}
/**
*实地执行。
*@see net.rim.device.api.ui.Field#drawFocus(图形,布尔值)
*/
//受保护的void drawFocus(图形,布尔打开){
////什么也不做
// }
受保护的void drawFocus(图形,布尔打开){
如果(打开){
//绘制自己的自定义焦点。
}
}
/**
*实地执行。
*@see net.rim.device.api.ui.Field#布局(int,int)
*/
受保护的空心布局(内部宽度、内部高度){
setExtent(Math.min(width,getPreferredWidth()),
Math.min(height,getPreferredHeight());
}
/**
*实地执行。
*@see net.rim.device.api.ui.Field#paint(图形)
*/
受保护的空心漆(图形){
//首先画背景色和图片
graphics.setColor(this.color);
fillRect(0,0,getWidth(),getHeight());
graphics.drawBitmap(0,0,getWidth(),getHeight(),_currentPicture,0,0);
//然后画文本
图形.设置颜色(颜色.白色);
graphics.setFont(_font);
graphics.setFont(graphics.getFont().derivate(Font.BOLD));
图形.绘图文本(_标签,5,9,
(int)(getStyle()&DrawStyle.省略号| DrawStyle.VALIGN|u掩码| DrawStyle.HALIGN|u掩码),
getWidth()-6);
}
/**
*重写,以便事件分派线程可以捕获此事件
*而不是让它在这里被抓住。。
*@see net.rim.device.api.ui.Field#navigationClick(int,int)
*/
受保护的布尔导航单击(int状态,int时间){
现场更改通知(1);
返回true;
}
}
我建议去掉一些不必要的HorizontalFieldManager
对象,只使用以下代码:
HorizontalFieldManager hfm=新的HorizontalFieldManager(字段。使用所有宽度);
VerticalFieldManager vfm=新的VerticalFieldManager(字段。使用所有宽度);
位图logo=Bitmap.getBitmapResource(“logo.png”);
BitmapField kenexaLogo=新的BitmapField(logo,Field.Field_左);
hfm.add(新的NullField());//从登录bu获取焦点