Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 不同设备的黑莓用户界面_User Interface_Blackberry - Fatal编程技术网

User interface 不同设备的黑莓用户界面

User interface 不同设备的黑莓用户界面,user-interface,blackberry,User Interface,Blackberry,我正在开发一个黑莓应用程序。我有一个标题,你可以在下面的图片中看到,低分辨率,它需要的空间比宽度多,目前在BB Bold 9900模拟器上测试。因此,我尝试使用以下代码来防止UI破坏 问题: 这是防止UI破坏的正确代码吗 如果是,那么通过使用此代码,我们如何将按钮向右对齐,将徽标向左对齐 我应该遵循哪种设计/UI来防止在不同分辨率的设备中破坏UI ImageButton Login=newImageButton(configModel.getLoginButton(),可聚焦,“Login.pn

我正在开发一个黑莓应用程序。我有一个标题,你可以在下面的图片中看到,低分辨率,它需要的空间比宽度多,目前在BB Bold 9900模拟器上测试。因此,我尝试使用以下代码来防止UI破坏

问题

  • 这是防止UI破坏的正确代码吗
  • 如果是,那么通过使用此代码,我们如何将按钮向右对齐,将徽标向左对齐
  • 我应该遵循哪种设计/UI来防止在不同分辨率的设备中破坏UI

    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获取焦点