[j2me]二级菜单演示 开源声明

简介:

郑昀@ultrapower

产品名称

产品版本

Keyword: JavaME 二级菜单

MenuBarlet

1.0.20

 [J2ME]二级菜单演示

(MenuBarlet)

开源说明

 

我的资源:

http://files.cnblogs.com/zhengyun_ustc/menubar-1.0.20-src.rar

这个1.0.20版本的j2me软件,能够在Nokia S60系列、索爱K700C和摩托罗拉Pebl U6手机上运行。

提请注意的是,由于本源代码思路来自于网友相助,并且引入了jmobilecore/bluegammon/等开放源代码库的一些类,所以我也遵循GPL协议,请看后面的“开源版权声明”。

http://files.cnblogs.com/zhengyun_ustc/menubar-deployed.rar

Nokia S60系列安装程序,用数据线传menubar.jar到您的手机上即可安装。

 

摘要:

本文档给出MenuBarlet的开源说明。

1 简单描述MenuBarlet的功能和特别之处

2 描述调用MenuBarlet的开源版权声明

3 给出了 MenuBarlet的思路和设计细节

1背景、功能和特别之处

摘要:本章 简单描述MenuBarlet的背景、功能和特别之处。

 

1.1. 手机上的二级菜单

首先,我们来定义什么是“二级菜单”,就是类似于Microsoft Windows的开始菜单。2005年底看到ucfly制作的强大无线软件ucweb,他们的二级菜单风格让我顿生觑睨之心。后来Opera mini的推出,更让我看到此种风格界面须立即学习。尚无思路之时,恰逢朋友是这方面的强手,从而得窥门径。不敢独享,遂开放代码,希望借此抛砖引玉,使得国内无线Java软件能够百花齐放。

这里给出Opera Mini的界面,让你有一个主观的感受:
Google English   operaMiniMenu   
 

1.2. 二级菜单的功能

我们提供的功能有:

针对手机上以下几种按键,菜单会自动伸缩或响应命令:

l         KEY_SOFT_LEFTKEY_SOFT_RIGHT,代表高端手机的两个左右软键;

l         KEY_UPKEY_DOWNKEY_LEFTKEY_RIGHT,上下左右按键;

l         KEY_FIRE,代表高端手机的“Fire”键。

绘制的部分有四种:

l         主菜单,即第一级菜单;

l         子菜单,即第二级菜单;

l         屏幕下方的状态栏或者左右软键示意按钮;

l         整个屏幕的背景。

 

下图标明了手机上的按键:

o_Menubarlet.keys.jpg
 

下图给出了绘制部分的区域划分:
o_Menubarlet.drawRegion.jpg
 

1.3. 特别之处

左右软按钮:

我们按照bluegammon的行事方式,将绘制底边左右软按钮封装到了SoftButtonControl类里面。这样,通过一个标志,可以设定两种不同的绘制风格。

其一如下所示:

o_Menubarlet.SoftButton.style1.jpg
 

其二:

o_Menubarlet.SoftButton.style2.jpg

 

第二种风格中,绘制的按钮矩形会自动随着左右软按钮的标题而伸缩。

 

不同机器键值不同:

如若要发布到不同厂商的机器上,需要根据不同机器的按键值而修改。即,因为同样是KEY_FIRE键,Nokia平台下定义的数值为-5,而摩托罗拉的v80/220/300/400/500/600则声明为20

所以,你在发布的时候,必须针对此,选择用源代码中

MenuBar\src\com\ultrapower\canvas目录下的不同PlatformCanvas代码。比如要发布到Nokia手机上,则不用修改PlatformCanvas.java;发布到摩托罗拉手机上,则使用PlatformCanvas.motov文件中的代码替换PlatformCanvas.java;发布到三星手机上,则使用PlatformCanvas.samsung文件中的代码替换PlatformCanvas.java

开源版权声明

由于我这个版本的 MenuBarlet 思路和部分代码来自于朋友,也是混合了bluegammon/jmobilecore基础代码整合而来的,所以决定遵照GPL协议的大意开放源代码,您可以自由传播和修改,在遵照下面的约束条件的前提下:

 

条件1

只要你在MenuBarlet每一副本上明显和恰当地出版版权声明,保持此许可证的声明和没有担保的声明完整无损,并和程序一起给每个其他的程序接受者一份许可证的副本,你就可以用任何媒体复制和发布你收到的原始的程序的源代码。你可以为转让副本的实际行动收取一定费用,但必须事先得到郑昀的同意。

 

条件2

你可以修改MenuBarlet程序的一个或几个副本或程序的任何部分,以此形成基于程序的作品。只要你同时满足下面的所有条件,你就可以按前面第一款的要求复制和发布这一经过修改的程序或作品。

 

a

你必须在修改的文件中附有明确的说明:你修改了这一文件及具体的修改日期。

 

b

你必须使你发布或出版的作品(它包含程序的全部或一部分,或包含由程序的全部或部分衍生的作品)允许第三方作为整体按许可证条款免费使用。

 

c

如果修改的程序在运行时以交互方式读取命令,你必须使它在开始进入常规的交互使用方式时打印或显示声明:包括适当的版权声明和没有担保的声明(或者你提供担保的声明);用户可以按此许可证条款重新发布程序的说明;并告诉用户如何看到这一许可证的副本。(例外的情况:如果原始程序以交互方式工作,它并不打印这样的声明,你的基于程序的作品也就不用打印声明)。

 

这样,您就可以自由使用并传播本源代码,当然请您原封不动地保留原作者信息

思路

摘要:本章给出了 MenuBarlet的思路和设计细节。

 

画图主方法中,判断是否画菜单,然后执行:

u       每次都事先清理屏幕,以防止某些区域不更新;

u       绘制背景图片在屏幕正中间;

u       画菜单;

u       画左右软键(抑或是状态栏)的菜单文字。

 

对于画二级菜单,我们则使用MenuBarCanvasdrawMenuBarandItem方法:

n         让当前所选的菜单索引值始终保持在菜单集合内;

n         画子菜单;

n         画主菜单。

至于具体画菜单,则由MenuBarCanvasdrawMenu方法完成:

l         圈定特定区域,也就是整个屏幕;

l         逐个菜单绘制边框和背景色;

l         绘制菜单标题。

那么,菜单项由MenuItem类来封装,并通过MenuBarCanvasupdateMenuItemCoordinate方法来计算每一个菜单项的偏移坐标。

响应按键,均由keyPressedMenuKeyPressed来处理。

具体情况,请看MenuBarCanvas代码,注释非常详细,应该是一望即知。

 

编写者

日期

关键词

郑昀@ultrapower

2006-02-16

Mobile

二级菜单,Canvas

Opera Mini

JavaJ2ME

 

修改历史

目录
相关文章
|
1月前
|
JSON 小程序 JavaScript
【微信小程序】-- 自定义组件 -- 创建与引用 &样式(三十二)
【微信小程序】-- 自定义组件 -- 创建与引用 &样式(三十二)
|
6月前
|
小程序 NoSQL Redis
【uniapp小程序】打印列表UI模板
【uniapp小程序】打印列表UI模板
|
6月前
|
Web App开发 前端开发 JavaScript
如何使 SAP UI5 SmartField 在运行时渲染成超链接的形式并支持跳转的试读版
如何使 SAP UI5 SmartField 在运行时渲染成超链接的形式并支持跳转的试读版
25 0
|
JSON 小程序 JavaScript
走进小程序【四】小程序自定义Component如何使用,手把手封装一个底部Tabbar栏
走进小程序【四】小程序自定义Component如何使用,手把手封装一个底部Tabbar栏
166 0
走进小程序【四】小程序自定义Component如何使用,手把手封装一个底部Tabbar栏
|
JavaScript
vue中动态绑定类名v-bind:class的几种常见的用法(以导航菜单点击高亮为例讲解)
vue中动态绑定类名v-bind:class的几种常见的用法(以导航菜单点击高亮为例讲解)
175 0
|
数据处理 开发工具
RecyclerView多布局写法,“我的”、“个人中心” 页面经典写法演示
RecyclerView多布局写法,“我的”、“个人中心” 页面经典写法演示
224 0
RecyclerView多布局写法,“我的”、“个人中心” 页面经典写法演示
|
C#
WPF - 模板查看工具:Show Me The Template及如何查看第三方主题
原文:WPF - 模板查看工具:Show Me The Template及如何查看第三方主题   在学习WPF的模板(DataTemplate、ItemsPanelTemplate、ControlTemplate)时,经常会想看看WPF内建的控件模板。
1573 0
|
设计模式
QtQuickcontrols2控件使用参考
随着Qt的版本升级,其自带的controls控件库也不断升级,目前已经到了2.3的版本。本文通过解读Qt自带的gallery例程,说明新版本controls控件库的相关特性。其具体位置于: 因为相关的中文资料比较缺乏,所以这里的内容会详细整理,某种意义上可以当作使用手册来使用。
1035 0

热门文章

最新文章

相关实验场景

更多