【连载】BlackBerryUI设计大全(二)
1 基于MIDP的UI设计
上面的图是整个MIDP中的LCDUI包的组成结构,这个包包括完整的MIDLP高级和低级UI库。
1.1MIDP高级UI
我们在这一节要介绍LCDUI库的具体组成类图。Screen类系属于高级图形用户界面组件,Canvas是低级图形用户界面组件,在同一时刻,只能有唯一一个Screen或者Canvas类的子类显示在屏幕上。
使用高级界面,但是九宫格这样的屏幕铺放应用的实现是想不到好的办法,本身没有合适的控件可以完成这个任务。一种可能的办法是通过定制高级UI组件里面的元素,比如CustomItem, 用他来绘制定宫格。本例就是使用CustomItem 来实现了一个九宫格效果,效果如下图所示
源代码如下所示:
public class GridItem extends CustomItem {
private Image image;
public MyItem(Image image, String title,int width,int height)
{
this.image = image;
}
public void paint(Graphics g, int w, int h)
{
g.drawImage(this.image, w/2, 0, Graphics.HCENTER | Graphics.TOP);
g.drawString(this.title, w/2, h - g.getFont().getHeight(), Graphics.HCENTER | Graphics.TOP);
}
通过对Form的定制item设置背景图片,找到一个work around的办法,放置我们的九宫格图标,剩下的就是对Form主程序的设置了
Form f = new Form("CustomItem");
int tempWidth = f.getWidth() / 4;
int tempHeight = 60;
for(int i = 0; i < 9;i++)
{
String imgSrc = "/img/" + i + ".png";
try
{
Image img = Image.createImage(imgSrc);
MyItem mi = new MyItem(img,String.valueOf(i) + " item",tempWidth,tempHeight);
mi.setLayout( Item.LAYOUT_CENTER );
f.append( mi );
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
display.setCurrent( f );
转自:http://topic.csdn.net/u/20100716/09/3db087b7-2cab-4b90-bae8-0ec1f4651143.html?82180
[解决办法]
该回复于2010-08-10 16:50:34被版主删除
[解决办法]
该回复于2010-08-10 16:45:51被版主删除
[解决办法]
不错,看看了!
[解决办法]
明明是j2me嘛
[解决办法]
该回复于2010-08-11 15:00:21被版主删除
[解决办法]