Blackberry UI框架

原创 2012年03月30日 11:56:40

在黑莓原生的UI框架里,所有的UI组件都是Field,这里的Filed代表一个占据一个矩形空间的物件。自定义的UI组件必须是Field的子类或子类的子类。

黑莓的UI有个特性就是默认其大小是不固定的,它不提供类似setSize(),resize()之类的函数,而是需要在开发者客制化一个Filed时在Layout中去指定其大小。而如果需要的是一个大小固定,内容可伸缩的Field,则必须在该Filed之外包裹上一层Manager,也就是说这时候,除了客制化Field之外,开发者还需要客制化一个Manager

自定义大小的EditField示例:

import net.rim.device.api.system.Bitmap;

import net.rim.device.api.system.Display;

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

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

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

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

import net.rim.device.api.ui.component.EditField;

import net.rim.device.api.ui.container.VerticalFieldManager;

public class VerticalFieldInputManager extends VerticalFieldManager{

    private int managerWidth;

    private int managerHeight;

    private EditField editField;

    

    

    public VerticalFieldInputManager(int width, int height) {

        super(Manager.NO_VERTICAL_SCROLL );

        managerWidth = width;

        managerHeight = height;

        VerticalFieldManager vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL);

        editField = new EditField(Field.FOCUSABLE);

        editField.setFocusListener(new FocusChangeListener() {

            

            public void focusChanged(Field field, int eventType) {

                // XXX Auto-generated method stub

                invalidate();

            }

        });

        editField.setPadding(5,5,5,5);

        vfm.add(editField);

        add(vfm);

        

    }

    public void sublayout(int width, int height) {

        if(managerWidth == 0) {

            managerWidth = width;

        }

        if(managerHeight == 0) {

            managerHeight = height;

        }

        super.sublayout(managerWidth, managerHeight);

        setExtent(managerWidth,managerHeight);

    }

    

    protected void paintBackground(Graphics graphics) { 

        if(editField.isFocus()){

            graphics.setColor(0x0000FF);

        }else{

            graphics.setColor(0x000000);

        }

        

        graphics.drawRect(0, 0, managerWidth, managerHeight);

        graphics.setColor(0x000000);

        super.paint(graphics);

    }

    

    

    public String getText() {

        return editField.getText();

    }

    

    public void setText(String text) {

        editField.setText(text);

    }

}

BlackBerry_Smartphones-UI准则-6.0-ZH

  • 2011年02月18日 14:58
  • 8.94MB
  • 下载

BlackBerry 高级UI设计

  • 2010年08月24日 19:39
  • 778KB
  • 下载

BlackBerry Tablet OS SDK (操作系统开发工具包) UI指南(二)

第1周内容回顾 •安装过程 •BlackBerry Tablet OS SDK •BlackBerry PlayBook Simulator •设置Flash Builder 4 •创建He...

BlackBerry Tablet OS SDK (操作系统开发工具包) UI指南(一)

议程 •前三周的内容回顾 •BlackBerry PlayBook的特色 •设计原则 •通知和指示图标 •屏幕设计 •UI 组件...

BlackBerry_Java_SDK-UI 快速指南.pdf

  • 2011年12月15日 16:18
  • 5.61MB
  • 下载

如何创建定制的BlackBerry UI Field

  • 2010年09月06日 13:39
  • 603KB
  • 下载

iOS 10越狱和Reveal 8分析三方App UI框架教程

前言这是一篇写给开发者的博客,如果碰巧非开发者搜到了这篇博客,那么博客的内容可能不适合你。其实网上Reveal的教程很多,但是很多都是停留在Reveal 1或者Reveal 2时代的博客,不太适合最新...

H+ 后台主题UI框架(毕设福利)

  • 2017年12月07日 18:01
  • 5.04MB
  • 下载

16个Javascript的Web UI库、框架及工具包

目前,几乎所有的富Web应用程序都依赖一套UI管理,程序库或框架(或工具包),他们不仅简化了应用程序开发,他们还提供兼容的、可靠的及很强交互性的用户界面。除此之外您会请求哪些呢? 当前,广泛应用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Blackberry UI框架
举报原因:
原因补充:

(最多只允许输入30个字)