解读 LWUIT 之十一:风格(com.sun.lwuit.plaf.Style)对象

解读 LWUIT 之十一:风格(com.sun.lwuit.plaf.Style)对象

LWUIT 开发指南下载
        com.sun.lwuit.plaf.Style 对象可以通过设置颜色、字体、透明度、边距(margin)、填充度(padding)、图片和边框(border)来定义 LWUIT 控件的风格。每个 Component 控件都有一个内置的(被选中的) Style 对象,我们可以通过 Component 对象的 getSelectedStyle 和 getUnselectedStyle 方法来在程序运行时修改其内置 Style 对象,达到风格动态切换的效果。当 Theme 对象改变时,所有的 Style 对象会自动更新。
        每个 Component 对象可以(通过 res 文件)调整自己的两个颜色是:前景颜色(通常用于调整 Componet 的文本显示颜色)和背景颜色。颜色的定义是三基色,不能设置颜色的透明度,因为背景透明度的设置是独立的。有效颜色定义范围是 0x000000(黑色) 到 0xffffff(白色)的整数(当然,也可以使用对等的十进制)。
        可以使用 com.sun.lwuit.Font 对象来设置字体格式。
        LWUIT 支持控件透明度设置,用以增加界面的灵活性和吸引力。可以通过调用 Style 对象的 setBgTransparency 方法来设置透明度,传入该方法的整数取值范围是 0 到 255(默认为 255,即不透明)。
        边距(margin)和填充度(padding)类似于 CSS 盒模型。每个 LWUIT 控件都有一个主内容区域(Content area,例如文本或者图标)和一些填充(padding)和边距(margin)区域,每个区域的尺寸是由四个分别表示上、下、左右的整数来定义,类似于 SWING。下图说明了边距(margin)和填充度(padding)的联系:
 
        可以通过调用 Style 对象的相关方法,类似于下面的代码来设置边距(margin)和填充度(padding):
 
        Style 对象中的图片指的是控件的背景图片。默认情况下控件没有背景图片。
        Style 对象支持自定义边框(Border)渲染。边框(Border)可以取代背景 Painter,或者也可以在控件对象自己渲染完以后再行渲染。也可以通过继承 com.sun.lwuit.plaf.Border 类并重写相关方法来自定义边框。边框被渲染到控件的填充(padding)区域,所以一定要保证控件的填充(padding)区域足够大以包容边框的绘制。
        通过使用 com.sun.lwuit.events.StyleListener 对象我们可以跟踪特定控件的 Style 对象。比如我们可能想监控某个控件的背景颜色的改变,一旦改变就做出某种相应,就可以用 com.sun.lwuit.events.StyleListener。下面的一段代码演示了如何在某控件上添加 com.sun.lwuit.events.StyleListener 来跟踪字体的改变并做出相应的代码:

        Style 对象中的 Painter 指的是控件背景的绘制。Painter 先完成自己的绘制,然后控件在 Painter 上面进行绘制。可以调用 Style 对象的 setBgPainter 方法来设置 Painter,例如设置 myPainter 作为控件的背景 Painter 的源代码:

 
        更多关于 Painter 的相关信息请参阅上篇博客《解读 LWUIT 之十:画笔(Painters)》。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值