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 Tablet OS SDK (操作系统开发工具包) UI指南(二)

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

BlackBerry 高级UI设计

  • 2010-08-24 19:39
  • 778KB
  • 下载

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

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

Android开源项目以及开源框架,各种UI实现效果。

开源项目和开源框架第一期 图片 Android-Universal-Image-Loader★15152 - 异步图像加载程序 glide★15006 - 媒体管理和图片加载框架...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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