`
阅读更多
如何自定义一个自己的UI组件?
创建一个自定义UI,需要继承自现有的组件或者直接继承Field类,通常我们必须实现layout()和paint()方法用于显示想要的UI界面。
1. layout()方法可在手机屏幕上实现一个具有宽度和高度的区域,调用setExtent(width, height);实现。getPreferredWidth()、getPreferredHeight()告诉容器出现在屏幕上合适的高度和宽度
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->public int getPreferredWidth() {
        
return this.getScreen().getWidth() / 7;
    }

    
/**
     * Gets the preferred height of the button.
     
*/
    
public int getPreferredHeight() {
        
return _labelHeight;
    }

    
protected void layout(int width, int height) {
        
// Calc width.
        width = getPreferredWidth();

        
// Calc height.
        height =getPreferredHeight();

        
// Set dimensions.
        setExtent(width, height);
    }
2. paint()方法使用Graphics对象绘制UI,drawLine, drawRect,drawText
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->protected void paint(Graphics graphics) {
//        graphics.setColor(0xDDDDDD);
//        graphics.fillRect( 0, 0, getWidth(), getHeight() );
        int textX, textY, textWidth;
        
int w = getWidth();
        
if (_isBorder == 0) {
            graphics.drawRect(
00, w, getHeight());
        }
        textX 
= 4;
        textY 
= 2;
        textWidth 
= w - 6;
        graphics.drawText(_label, textX, textY, (
int) (getStyle() 
                
& DrawStyle.ELLIPSIS | DrawStyle.HALIGN_MASK), textWidth);
    }
3. 如果要处理键盘和滚轮事件可以实现keyChar()/trackwheelClick()方法
4. 如果在控件获取到焦点,实现onFocus()方法,可查看黑莓自带的例子
贴上完整的代码:CalenderField.java
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->package org.bulktree.calender;

import net.rim.device.api.ui.*;

class CalenderField extends Field implements DrawStyle {
    
public static final int RECTANGLE = 1;
    
public static final int TRIANGLE = 2;
    
public static final int OCTAGON = 3;

    
private String _label;
    
private Font _font;
    
private int _labelHeight;
    
private int _isBorder = 0;//是否有边框0有1无
    
    
public CalenderField(String label, int shape, long style) {
        
super(style);
        _label 
= label;
        _font 
= getFont();
        _labelHeight 
= _font.getHeight();
    }
    
    
public CalenderField(String lable, int shape, long style, int isBorder) {
        
super(style);
        _label 
= lable;
        _font 
= getFont();
        _labelHeight 
= _font.getHeight();
        _isBorder 
= isBorder;
    }

    
/**
     * Gets the preferred width of the button.
     
*/
    
public int getPreferredWidth() {
        
return this.getScreen().getWidth() / 7;
    }

    
/**
     * Gets the preferred height of the button.
     
*/
    
public int getPreferredHeight() {
        
return _labelHeight;
    }

    
protected void layout(int width, int height) {
        
// Calc width.
        width = getPreferredWidth();

        
// Calc height.
        height =getPreferredHeight();

        
// Set dimensions.
        setExtent(width, height);
    }

    
protected void paint(Graphics graphics) {
//        graphics.setColor(0xDDDDDD);
//        graphics.fillRect( 0, 0, getWidth(), getHeight() );
        int textX, textY, textWidth;
        
int w = getWidth();
        
if (_isBorder == 0) {
            graphics.drawRect(
00, w, getHeight());
        }
        textX 
= 4;
        textY 
= 2;
        textWidth 
= w - 6;
        graphics.drawText(_label, textX, textY, (
int) (getStyle() 
                
& DrawStyle.ELLIPSIS | DrawStyle.HALIGN_MASK), textWidth);
    }
}
分享到:
评论

相关推荐

    黑莓开发学习入门系列,自己动手实现一个日历软件源码

    本压缩包提供的"黑莓开发学习入门系列"聚焦于一个实用的日历软件源码,对于想要了解或深入学习黑莓平台开发的开发者来说,这是一个非常有价值的资源。 首先,我们要理解的是黑莓开发所使用的编程环境和语言。...

    blackberry9630黑莓9630农历日历软件

    总的来说,"blackberry9630黑莓9630农历日历软件"是一个专为BlackBerry 9630用户设计的日历应用,旨在提供全面的日期管理和提醒功能,尤其是针对农历日期的需求。这款软件的出现,满足了用户对传统文化和日常生活的...

    BlackBerry(黑莓)开发入门教程最新版

    **BlackBerry(黑莓)开发入门教程最新版** ...本教程只是一个起点,深入学习BlackBerry开发还需要实践和查阅更多资料。希望这个详尽的入门教程能帮助你顺利进入BlackBerry开发的世界,祝你开发愉快!

    BlackBerry开发平台及入门介绍

    - **提供安全可靠的无线通道**:BlackBerry架构的核心之一在于其能够提供一个基于PUSH技术的安全、可靠且快速的无线通信通道。 - **BlackBerry Enterprise Server**:作为后端服务的关键组件,它负责与企业系统进行...

    黑莓(BlackBerry)开发从入门到精通

    《黑莓(BlackBerry)开发从入门到精通》是一本专为希望涉足黑莓应用开发领域的初学者和专业开发者设计的指南。这本书汇集了一线黑莓应用开发人员的丰富经验和实用技巧,得到了RIM(Research In Motion,黑莓制造商)...

    黑莓9530软件 日历

    总之,这款黑莓9530日历软件是一个强大且易用的工具,旨在提升用户的时间管理和工作效率,其优秀的用户体验和全面的功能使其在黑莓用户中受到好评。无论是安排个人生活还是协调工作项目,这款日历应用都能提供必要的...

    BlackBerry Widget 开发入门

    ### BlackBerry Widget 开发入门知识点详解 #### 背景知识:Widget 技术与 BlackBerry 平台 **Widget 技术概述**: ...对于希望利用 BlackBerry 平台特性的开发者来说,这是一个非常有价值的学习资源。

    blackberry开发入门教程

    ### BlackBerry Java 开发环境安装及入门教程 #### 一、BlackBerry Java 开发概述 BlackBerry设备曾经在移动通信市场上占据重要地位,特别是在商务领域。RIM(Research in Motion)公司为开发者提供了丰富的开发...

    黑莓软件大全 黑莓软件集合下载 2011.3.16

    3. **a软件**:这个文件名没有给出具体信息,但根据上下文,它很可能是另一个黑莓软件,可能是压缩包中的一个单独应用程序,用户解压后可以安装到黑莓手机上。 总结起来,这个资源包是面向黑莓手机用户的一次性软件...

    BlackBerry入门教程---黑莓手机软件安装方法.pdf

    WinLoader 还有一个很方便的功能,就是可以直接双击 cod 文件,它会自己传输到 BlackBerry 手机上。 三、OTA 在线方式 OTA 是一个在线下载软件和安装的方式。现在比较出名的 OTA 站点就是莓园无线。在线方式下载...

    黑莓手机开发学习教程

    ### 黑莓手机开发学习教程知识点详解 #### 一、理解可访问性(Accessibility) **定义:** 可访问性指的是产品或服务能够被尽可能多的人使用的程度。在本上下文中,可访问性意味着设计应用程序时考虑让有各种残疾...

    黑莓手机日历工具

    首先,我们要明确的是,“黑莓手机日历工具”是一款专为黑莓手机平台设计的应用,旨在提供全面、详尽的日程管理功能。它将传统的日历视图与现代的智能提醒相结合,帮助用户高效地安排和追踪日常生活和工作事务。 该...

    黑莓开发helloword

    在“黑莓开发HelloWord”教程中,我们首先会接触到Ant工具,这是一个由Apache软件基金会开发的Java库和命令行工具,主要用于构建Java项目。Ant通过XML格式的构建文件(build.xml)定义构建任务,包括编译、打包和...

    BlackBerry开发平台配置及入门介绍(傻瓜教程)

    ### BlackBerry开发平台配置及入门介绍 #### BlackBerry概述与特点 BlackBerry是由加拿大RIM公司推出的一款移动电子邮件系统终端,以其独特的双向寻呼模式和高度安全的无线数据传输技术著称。自1998年问世以来,...

    自己收集初学者黑莓开发教程

    对于那些希望通过编程实现个性化功能或拓展黑莓设备能力的用户,学习黑莓开发是一项有价值的技术。本文主要面向对黑莓应用程序开发感兴趣的初学者,特别是那些有一定编程基础,希望利用Java语言来构建黑莓应用的人。...

    BlackBerry入门教程---黑莓手机软件安装方法借鉴.pdf

    本文是针对BlackBerry初学者的一份入门教程,主要讲解如何在黑莓手机上安装软件。教程分为三个部分:传统方式(桌面管理器)、WinLoader安装以及OTA在线方式。 首先,传统方式是通过BlackBerry桌面管理器进行软件...

    BlackBerry Java 开发环境安装及入门

    BlackBerry Eclipse Plug-In 是在Eclipse 平台的一个插件,为了安装BlackBerry Eclipse Plug-In, 需要先安装JDK 和Eclipse 平台。BlackBerry Eclipse Plug-in 对JDK 的版本要求为JDK6-update10 或者更高版本。...

    黑莓手机开发官方教程

    开发者会学习如何配置Eclipse IDE,安装BlackBerry插件,并创建第一个黑莓应用项目。这部分还会讲解如何设置模拟器来测试应用程序,确保在不同型号的黑莓设备上运行正常。 接下来,教程可能会深入讲解BlackBerry的...

    BlackBerry 开发指南

    这份指南分为两卷,分别涵盖了基础和高级部分,旨在帮助开发者从入门到精通,掌握在BlackBerry平台上进行软件开发的关键技能。 卷I - 基础部分: 这部分主要介绍BlackBerry开发的基础知识,包括: 1. **BlackBerry...

Global site tag (gtag.js) - Google Analytics