目录
3.2 BitmapButtonField和MediaControlStyleField
一 概述
BlackBerry 平台为开发人员提供了很多标准的UI组件,为程序员快速开发手机应用奠定了基础。但大量手机软件是消费类、娱乐类软件,这些软件需要需要独特、于众不同、能抓住用户眼球的UI界面。
标准的UI组件经常不能满足开发商和用户的独特要求,很多时候开发人员需要发挥其想象力去创造和定制出新的UI组件。所幸BlackBerry平台上面创建定制的UI组件是一件比较简单的事情。
二 BlackBerry UI Field
从BlackBerry API Java doc中我们看到,我们常用的UI组件,比如文本框ButtonField、LabelField、TextField等等都是扩展net.rim.device.api.ui.Field接口而来。
更高级的BlackBerry UI组件,比如管理器Manager和窗口Screen也是继承Field类。
三 创建定制的UI Field的方法
创建自定义字段,编写一个Field,通常至少需要实现layout()和paint()两个方法,以设置Field的宽度和高度,显示UI组件的界面。其他方法可选,具体列表如下:
Field是UI的最小单元,这个最小单元里面不能放置其他Field 。 注:Manager类里面可以嵌套放置Manager和Field类,Manager管理Field在屏幕上的摆放位置。 | extends Field并实现相应的方法。 或者是extends 现有的Field类,比如LabelField、ListField
|
Field在手机屏幕上显示为一个长方形的区域,有宽度,高度 | 实现layout():调用setExtent()方法设置Field的宽度和高度。 |
在Field长方形的区域中更改背景,显示图形/文字,加边框等 | 实现 paint():使用Graphics对象的drawText,drawLine,drawRect等方法来绘制Field |
Field可以选择是否要处理和如何处理键盘/轨迹球事件,例如用户按下“黑莓退出键”,你可以选择弹出对话框Dialog,让用户确认需要退出 | 实现 |
Field需要告诉Manager它preferred的宽度和高度,以便Manager控制各个Field的显示 | override |
Field被选中,on focus的时候可以选择重新绘制字段。 注:用户希望Field选中/非选中状态显示的界面不一样,比如选中的时候希望高亮度显示,加边框;没有选中就低亮度显示即可。 | 实现drawFocus (): 使用Graphics对象setBackgroundColor() 方法改变背景色,drawLine,drawRect,drawText等方法来绘制Field |
Field可以选择是否要处理和如何处理Focus/selected事件 | 实现onFocus () |
以下略,详情见原文: