【连载】BlackBerryUI设计大全(四)
2基于Third party的UI库的设计
直接使用MIDP的UI组件来做应用界面和接口,很多时候需要大量的编程和设计工作。为了减轻开发者的负担,J2ME平台上也有很多这样的UI设计支撑库,本节我们一LWUIT这个应用比较广泛的例子为例,说明如果在BlackBerry J2ME平台上使用GUI Library去设计这个九宫格程序。
2.1 基于LWUIT的UI库的设计规范
The Lightweight UI Toolkit (LWUIT) 是一个轻量级JavaME UI工具包。LWUIT类似Swing 的MVC架构, 支持多种布局(Layouts), 皮肤更换, 字体, 触摸屏, 动画效果, Rich控件, 3D集成, Painter, 模式对画框, I18N/L10N等。
Sun在2008年的JavaOne会议上向开发者社区推荐了LWUIT,展示了预先发布的二进制文件库,附加工具和扩展文档,让开发者可以快速上手,现在Sun把整个源代码都开放出来,更方便开发者利用LUWIT开发JavaME应用。关于LWUIT库的使用,可以从SUN的官方网络拿到基本示例和说明的文档。
九宫格说白了就是几个按钮,摆的整整齐齐。既然是这样就先做个MainForm,采用GridLayout()布局,然后在Form里面做几个按钮,每一个按钮代表一个Form。
具体步骤如下:
1.在MainForm中以GridLayout形式排列九个按钮
2.建立一个BaseForm,添加一个BackCommand
3.创建9个Form继承自BaseForm。
public class MainForm extends Form implements ActionListener {
public static String currentText;
Command Option_CMD = new Command("选项", 0);
Command Exit_CMD = new Command("退出", 1);
public MainForm() {
//设置窗体翻转效果
Transition in = CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL, false, 300);
setTransitionInAnimator(in);
//设置这个currentText,是为了在点击某个按钮进入某个Form,然后回退时,焦点仍然在这个按钮上
if (currentText == null) {
currentText = "我的空间";九宫格说白了就是几个按钮,摆的整整齐齐。既然是这样就先做个MainForm,采用GridLayout()布局,然后在Form里面做几个按钮,每一个按钮代表一个Form。
setLayout(new BorderLayout());
getTitleComponent().setVisible(false);
try {
String[] texts = new String[]{
"menu1",
"menu2",
"menu3",
"menu4",
"menu5",
"mene6",
"menu7",
"menu8",
“menu9”};
/*
下面是基于LCDUI页面布局的主要框架代码
*/
Container buttonContainer = new Container(new GridLayout(3, 3));
for (int i = 0; i < texts.length; i++) {
Image unsel_img = r2.getImage(imgNames[i] + ".png");
final Button b = new Button(texts[i], unsel_img);
//setRolloverIcon当按钮被选中时
b.setRolloverIcon(r2.getImage(imgNames[i] + "_sel.png"));
b.setAlignment(Label.CENTER);
b.setTextPosition(Label.BOTTOM);
b.setUIID("DemoButton");
buttonContainer.addComponent(b);
}
addComponent(BorderLayout.CENTER, buttonContainer);
addCommand(Option_CMD);
addCommand(Exit_CMD);
addCommandListener(this);
show();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
}
最后LWUIT实现的效果,和我们基于MIDP高级UI的效果比较相像。这里需要注意是,在BlackBerry上使用第三方jar库的时候,需要把相应的JAR库转成BlackBerry上可以运行的cod文件。
为什么要讨论3rd-party的UI library,也是为了突出BlackBerry自己的UI Library的效果,在KVM平台上的应用UI设计,BlackBerry的UI Library是独树一帜的。
3基于BlackBerry的UI组件的设计
使用过类似LWUIT的布局组件,再使用BlackBerry原生的UI组件来设计UI就会发现这个非常熟悉。
Blackberry的UI组件功能更多,使用更加灵活也更加便捷,关于BlackBerry的UI基本组件的应用介绍,可以参阅BlackBerry基本UI设计
了解基本UI的设计方法之后,通过BlackBerry的UI布局组件,可以设置铺放UI组件到BlackBerry屏幕的效果,可以得到一个完成的基于BlackBerry UI组件和屏幕布局实现的九宫格程序的介绍。这里就不详细叙述了。
本文来自:http://blog.csdn.net/salvatore_zhang/archive/2010/08/05/5791054.aspx
[最优解释]
太感谢楼主分享了。顶一个!
[其他解释]
很好很强大 先收藏了
[其他解释]
很好啊。真的很强大,收草
[其他解释]
谢谢LZ,收藏学习。。顶!!!
[其他解释]
谢谢LZ,收藏学习。。顶!!!
[其他解释]
Z,收藏学习。。顶!!!
[其他解释]
我想学习FORTRAN 谢谢大家的斑竹
[其他解释]
我也正在看黑莓的材料呢,lz的资料很好啊
[其他解释]
对这个没兴趣~!
[其他解释]
值得学习~~
[其他解释]
值得学习~~
[其他解释]
值得学习~~
[其他解释]
学习了!!!!!!!!!!
[其他解释]
Z,收藏学习。。顶!!!
[其他解释]
学习了
[其他解释]
好,真有用啊
[其他解释]
收藏学习。。顶!!!
[其他解释]
黑莓开发~ ... 想说爱你不容易.
[其他解释]
没用过这方面的。。
[其他解释]
收藏学习。。顶!!!
[其他解释]
论坛不好使了..
[其他解释]
好 非常好
[其他解释]
活到老学到老 收藏一个
[其他解释]
好~~!
[其他解释]
呵呵vdfv 地方隔热
[其他解释]
henhaoa,bucuo
[其他解释]
强大干活呢后果由国家也很高分
[其他解释]
谢谢LZ,收藏学习。。顶!!!
[其他解释]
拿过来看看啊,希望能用到
[其他解释]
很好,哼强大的
[其他解释]
漂亮啊1!!!我喜欢
[其他解释]
路过那分数的
[其他解释]
好东西
[其他解释]
不错!
[其他解释]
不错呀
[其他解释]
学习!
[其他解释]
看不懂。。。。。。。。。。。。。。。。。。。。。。。
[其他解释]
很好很强大
[其他解释]
很好很强大
[其他解释]
谢谢LZ,收藏学习。。顶!!!
[其他解释]
该回复于2010-08-13 17:26:23被版主删除
[其他解释]
该回复于2010-08-13 16:36:02被版主删除
[其他解释]
该回复于2010-08-13 16:37:37被版主删除
[其他解释]
该回复于2010-08-13 17:28:03被版主删除
[其他解释]
该回复于2010-08-13 17:01:55被版主删除
[其他解释]
该回复于2010-08-13 17:02:37被版主删除
[其他解释]
该回复于2010-08-14 09:34:26被版主删除
[其他解释]
该回复于2010-08-14 09:37:58被版主删除
[其他解释]
xzcasdvdsfvcx cvxbzdfbcxvcxv
[其他解释]
该回复于2010-08-14 09:40:43被版主删除
[其他解释]
该回复于2010-08-14 09:40:43被版主删除
[其他解释]
该回复于2010-08-14 11:04:28被版主删除
[其他解释]
该回复于2010-08-14 09:40:43被版主删除
[其他解释]
该回复于2010-08-14 11:04:28被版主删除
[其他解释]
该回复于2010-08-16 17:25:27被版主删除
[其他解释]
该回复于2012-08-28 09:29:23被版主删除
[其他解释]
该回复于2010-08-14 09:44:05被版主删除
[其他解释]
该回复于2010-12-03 10:16:08被版主删除
[其他解释]
该回复于2010-08-16 17:25:27被版主删除
[其他解释]
很好很强大
[其他解释]
很好 很强大
[其他解释]
恩 说的好 我想要积分
[其他解释]
BUCUO ,FEICHANG GANXIE
[其他解释]
该回复于2010-08-16 10:49:42被版主删除
[其他解释]
Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488
[其他解释]
Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488Thunder5.9.23.1488
[其他解释]
vnbvnnmb
[其他解释]
值得学习~~学习了!!!!!!!!!!
[其他解释]
太好了!
[其他解释]
谢谢LZ,收藏学习。。顶!!!
[其他解释]
多谢多谢,收藏一下
[其他解释]
Thunder5.9.23.1488
------其他解决方案--------------------
该回复于2010-08-16 10:23:35被版主删除
[其他解释]
好厉害,
[其他解释]
先不说算法,感觉你这个代码定义有点问题
1、q定义时无需new
2、各变量定义类型应该是链表类型LinkList,而不是Node
面试官的方法:
从链表的开始循环到结束,然后从最后一个结点开始往前依次交换结点。
================
单向链表,怎么往前依次呢?把这个解决了算法就简单了
[其他解释]
恩 说的好 我想要积分
[其他解释]
该回复于2010-08-16 13:48:23被版主删除
[其他解释]
支持开源,支持共享
[其他解释]
该回复于2010-08-16 13:52:03被版主删除
[其他解释]
拿来试一下,谢谢楼主
[其他解释]
该回复于2010-08-17 09:52:52被版主删除
[其他解释]
不错,不错
[其他解释]
该回复于2010-08-17 10:19:57被版主删除
[其他解释]
不错,D!!!!!
[其他解释]
定,很好
[其他解释]
该回复于2010-08-16 15:10:53被版主删除
[其他解释]
很好,收藏了
[其他解释]
该回复于2010-08-16 16:46:20被版主删除
[其他解释]
收藏了 谢谢楼主
[其他解释]
关注中。。。
[其他解释]
该回复于2010-12-30 13:15:55被版主删除
[其他解释]
呵呵 不错哦
[其他解释]
该回复于2010-08-17 16:35:09被版主删除
[其他解释]
该回复于2010-11-17 15:46:51被版主删除
[其他解释]
该回复于2010-08-19 11:08:33被版主删除