LWUIT 自定义灵活Style的Component

来源:互联网 发布:雅思网络课程价格 编辑:程序博客网 时间:2024/05/07 13:19

当你使用LWUIT的这些Component时,如果一个页面中的布局比较复杂,组件很多,而且页面比较多时,常用的组件诸如Label,Button,TextField,TextArea等会用的非常平凡。用起这些组件时,我们常常会设置它的Style,Style很像web里的css,它能够让我们自定义Border,Font,FgColor,BgColor,Margin,Padding,设置一个组件的Style的代码很简单:

 

但是大多数的组件都有Style和selectedStyle,能够被点击的Button及其子类还有pressedStyle,以上面一句为例,它仅仅只能设置这个组件未选中的时候的Border,当选中它时,又会回到系统代码中设定的模样。一个页面有很多组件,大多数的组件都要设置Style(选中和未选中的Style),虽然代码是很简单,但是一个页面写下来,你会发现你至少一半的代码都花在布局和设置样式上了,代码看起来非常臃肿。

好在LWUIT是开源的,我们可以修改它的源代码来自定义这些UI的方法,找到Component.java文件,我们只需要在这个文件中添加几个方法来简化我们的Style设置。

以下是我在Component.java类中添加的一些方法,代码我写的比较粗糙,你们可以按照自己的方式来写,理论上每个方法都应该有两个参数,未选中和选中的状态,传参时可以为null,需要进行一些判断以适合大多数的情况。

Button类及其子类就比较特殊,它有一个pressedStyle,我们需要对一些方法进行重写。

 

 

当修改完这些基本的组件类以后,我们就可以灵活的运用这些组件了。以Button为例,在一个应用程序中会运用到很多Button,有边框的,无边框的,无背景的,带下划线的(类似于超链接)等等。我们完全可以把这些样式归到一个类中,那我们就写一个类CustomButton继承自Button。

 

以上方法的主体大家可以自己写,方法参数也自己定义。

我现在用的源代码是1.3版本之前最新的(1.3版本的目前还不能够使用),是我反编译LWUIT.jar后,修改了代码中混淆产生的错误,使用正常,下面是LWUIT源代码的下载地址:

http://download.csdn.net/source/1856358

 

原创粉丝点击