3
还有一种方式是在应用中显式调用屏幕的方位信息,然后做出调整:
switch(Display.getOrientation())
{
case Display.ORIENTATION_LANDSCAPE:
Dialog.alert("Screen orientation is landscape"); break;
case Display.ORIENTATION_PORTRAIT:
Dialog.alert("Screen orientation is portrait"); break;
case Display.ORIENTATION_SQUARE:
Dialog.alert("Screen orientation is square"); break;
default:
Dialog.alert("Screen orientation is not known"); break;
}
除了对屏幕方位也就是重力切换的处理,在触摸屏幕编程中,需要考虑UI事件的处理和全键盘手机的不
同,关于这部分的具体处理,可以参考下面部分的示例以及后续的内容介绍。
三 一个触摸屏幕应用界面的例子
本章以一个定制的黑莓UI展示程序为例,说明黑莓编程中需要注意的各个方面,通过一个可以定制的个性
化的toolbar的实现以及黑莓应用的背景的切换,来说明触摸屏幕编程和普通全键盘手机编制程序的区
别。
黑莓标准的UI组件里面是没有toolbar的,这里要设计一个toolbar,可以考虑标准UI组件的扩展,这
里我们让toolbar继承自HorizontalFieldManager.
基本的toolbar的特性包括排列的方向和toolbar的高宽等等以及组件的排列性质。这些都是可以配置
的,如果要做到一个比较灵活的设计,这里我们写死。
//public class ToolBarField extends HorizontalFieldManager
public class ToolBarField extends HorizontalFieldManager
{
//private static final int DefaultButtonHeight = 55;
//private static final int DefaultButtonWidth = 55;
private static final int DefaultButtonHeight = 129;
private static final int DefaultButtonWidth = 129;
private Vector leftJustifiedButtons = new Vector();
private Vector rightJustifiedButtons = new Vector();
private int preferredHeight = DefaultButtonHeight;
private int sideMargin = 3;
private int buttonSpacing = 2;
private int preferredWidth = Display.getWidth();
private Bitmap bg = null;
……
}
在toolbarfield类的设计中,核心的部分在于
private Vector leftJustifiedButtons = new Vector();
private Vector rightJustifiedButtons = new Vector();
这两个是为了放置用户加入扩种的具体field组件,这里使用的是标准的vector元素,可以添加也可以删
除组件,这里我们简单起见,只实现添加的接口,如下面的addbutton方法所示:
public void addButton(ToolBarButtonField button, boolean leftJustified)
{
super.add(button);
if (button.getPreferredHeight() > preferredHeight)
preferredHeight = button.getPreferredHeight();
if (leftJustified)
评论2
最新资源