`
insertyou
  • 浏览: 920173 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

《程序显示 随环境而变》(已发电脑报第19期)

阅读更多

目标手机软件

程序显示 随环境而变

模仿功能:环境模块

模仿对象:手机QQ 2008

模仿进度:第三期

开发平台:Java平台

设计手机程序,要考虑手机使用的特殊性,可以像手机QQ 2008那样,程序显示的亮度、背景色等根据时间和环境不同而变化。

环境模块功能设计思路

环境模块功能是一种贴心的设计,该功能使得手机软件在不同的场景下都获得良好的界面效果,从而使手机软件可以适应不同的环境。环境模块共有3种模式,夜间模式、室内模式和户外模式。其中室内模式和户外模式是在白天起作用。

白天的户外,光线比较强,所以比较适合使用比较亮的背景色以及比较暗的文字颜色;

白天的室内,软件处于正常的环境中,只需要设置成普通的状态即可(一般的手机软件只实现了室内模式的界面);夜晚的光线比较弱,需要比较暗的背景色和比较亮的文字颜色,以及比较暗的屏幕亮度。总之,就是通过变化颜色以及屏幕亮度,使得软件界面能够适应当前的环境。环境模块功能设计流程图如图1所示。

三种模式的切换

在程序中,存储了这三种模式相关的数值信息,主要是前景颜色、背景颜色和手机屏幕亮度的数值。在任何时候只能看到一种效果,类似于一个人有三套衣服,这个人可以根据需要穿其中的任何一套。

在程序中进行切换时,有两种切换方式:自动切换和手动切换。自动切换是在夜间模式和室内模式(白天使用)之间切换。模块中包含一个自动的线程,每隔1分钟获得一下当前时间,如果当前时间为1800~0700之间,则设置为夜间模式。手动切换是在室内模式和户外模式之间切换。当程序启动以后,按下手机键盘上的数字键0,如果当前模式是室内模式,则切换到户外模式。

变量foreColor用来存储前景颜色的数值,0x0是前景颜色的预设值,变量backColor用来存储背景颜色的数值,0xffffff是背景颜色预设值,变量screenBright用来存储屏幕亮度的数值,100是屏幕亮度预设值。

小知识颜色在程序中也采用RGB体系,也就是说所有的颜色都由Red(红色)Green(绿色)Blue(蓝色)三种颜色混合而成。在程序中表达时可以使用三个0~255之间的数字,也可以使用一个16进制的数字进行表达,格式为0x00RRGGBB,也就是使用int数值中的一个字节表达一种颜色,最左侧的一个字节可以是任意的数值。

环境模块功能实现步骤

第一步:创建项目

启动Eclipse环境,选择“FileNewJ2ME MIDlet Suit”,设置项目名称为“DreamScene”,并一路选择“Next”, 完成项目的建立。然后新建一J2ME入口类选择“FileNewJ2ME MIDlet”,并设置名称为“DreamSceneMIDlet”,点击“Finish”。创建项目的代码下载地址是http://www.shudoo.com/bzsoft

第二步:设计界面

选择“FileNewClass”,并设置名称为“DreamSceneCanvas”,点击“Finish”完成界面类的创建。接着,开始初始化界面。关键码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

//绘制背景

g.setColor(backColor);

g.fillRect(0, 0, width, height);

//绘制界面

g.setColor(foreColor);

g.drawString(modeStr[currMode], width/2, height/2, HCENTERBASELINE);

//绘制退出按钮

g.drawString(quitStr, width, height, RIGHTBOTTOM);

第三步:设置切换键

在上面的界面类中,编写事件处理的代码,实现按手机键盘上的“0”键在室内、户外两种模式之间依次切换。核心代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

public void keyPressed(int keyCode){

if(keyCode == KEY_NUM0){//数字键0

changeMode(); //改变模式

setMode(); //根据模式值设置颜色和亮度

}

if(keyCode == -7){//右软键

DreamSceneMIDlet.quitApp();

isRun = false; //关闭线程

}

repaint(); //重绘

第四步:根据时间自动切换模式

按照时间变化自动切换夜间模式和室内模式,规则为:1800~07:00之间为夜间模式,其他时间段切换为室内模式。核心代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

//延时

Thread.sleep(60000);

//根据时间改变逻辑

logic();

//重画屏幕

repaint();

//获得当前时间

Calendar c = Calendar.getInstance();

//获得小时数

int hours = c.get(Calendar.HOUR_OF_DAY);

//1800-0700时间段设置为夜间模式

if((hours >= 18) || (hours < 7)){

currMode = NIGHT_MODE;

第五步:运行程序

Eclipse主界面左侧的“Package Explorer”中,选中项目源代码DreamSceneMIDlet.java,单击鼠标右键,选择“Run AsEmulated J2ME Midlet”即可运行程序(图2)。

户外模式 夜间模式

读者反馈

开发QQ为什么我下载的Nokia S40模拟器不支持中文显示呢?

小编:在Nokia的官方网站上,可以下载Nokia S40系列的专用模拟器,其下载地址为:

http://www.forum.nokia.com/info/sw.nokia.com/id/cc48f9a1-f5cf-447b-bdba-c4d41b3d05ce/Series_40_Platform_SDKs.html。但是如果只安装该SDK的话,是无法显示中文的,需要再专门下载语言包,选择模拟器中的“Tool-Preferences”中的“Download languages”下载并安装语言包,然后重启启动模拟器,在相同的位置设置“Current language:”为“Chinese_simplified”即可。

开发QQ看了上期文章,想问一下,流量统计功能会不会给手机运行增加负担?会不会影响程序运行?

小编:在流量统计功能中,需要计算网络操作中发送数字的字节数以及接收到的信息的字节数字,这些计算对于程序本身的逻辑没有什么帮助,的确会增加手机的负担。但是由于这些计算需要的时间比较短,几乎可以忽略,所以对于手机软件程序的性能影响十分有限。在手机运行速度上看不出明显的变化。

开发QQ我平时一般使用NetBeans进行开发,请问Eclipse的项目如何在NetBeans中打开呢?

小编:一般不同的集成开发工具的项目格式都是不同的,也没有专门的工具实现不同项目格式直接的转换。但是可以通过如下的方式实现:在NetBeans中新建一个项目,然后将Eclipse项目中的程序源代码和资源文件复制到NetBeans项目中的对应文件夹即可。另外,还需要设置一下项目中的相关配置信息。

开发QQ:我下载了流量统计模块代码,但为什么无法在Eclipse中运行?

小编:首先要确认开发环境已经安装并配置好,开发环境需要EclipseEclipseMeWTK,然后在Eclipse中点击的“FileImportGeneral-Existing Projects into workspaces”,导入模块。导入后,选择项目名称,点击鼠标右键,打开项目属性菜单,选择“J2ME”,再选择Devices中从“Group”后的下拉列表中选择已经集成好的SDK,选择“OK”按钮确定即可。

读者问题我想用Socket方式穿越CMWAP网关,但是CMWAP网关只支持HTTP方式通信,请问有解决方法吗?

高手 无望峰我来回答这个问题吧。中国移动在手机网络接入时,设计了两个网关:CMNETCMWAP,其中CMNET支持所有的网络协议,CMWAP只支持HTTP协议,也就是说CMWAP网关的实质是一个HTTP代理服务器。

其实使用Socket方式也可以连接CMWAP网关,但是如果需要通过CMWAP发送数据时,则使用Socket方式发送的实体数据部分只需要符合HTTP协议的数据格式即可,即在发送时添加请求行和头部数据即可。

读者问题:弱弱的问一下,如何在手机程序中添加读取手机电话簿的功能,希望高手给我指点迷津。

你是手机编程的高手吗?你能解答上面这位读者的疑问吗?不要犹豫,来我们这里展示一下你的风采吧,来信请发到pcw-chendx@vip.sina.com(也可以给我们发送问题)。

第三个QQ: 81341158,第四个QQ: 9822280,验证码:手机开发,欢迎对手机编程感兴趣的朋友加入。

(河南 陈跃峰)

分享到:
评论

相关推荐

    电脑报2014年第19期

    《电脑报2014年第19期》是一份涵盖了当年信息技术、计算机应用及数码产品等方面的期刊,旨在为读者提供最新的科技资讯、实用的操作技巧以及深入的市场分析。这一期的内容可能包括了软件评测、硬件升级指南、网络技术...

    电脑报2018年专版 - 第24期至第51期

    电脑报第24期、电脑报第25期、电脑报第26期、电脑报第27期、电脑报第28期、电脑报第29期、电脑报第30期、电脑报第31期、电脑报第32期、电脑报第33期、电脑报第34期、电脑报第35期、电脑报第36期、电脑报第37期、电脑...

    电脑报2018年第03期.pdf

    5. 教育意义:对于计算机初学者和爱好者而言,《电脑报》可能是一份很好的学习资料,能够帮助他们了解计算机技术的基础知识和发展趋势。 6. 社会影响:作为一份面向广大计算机爱好者的周报,《电脑报》在普及计算机...

    电脑报2018年第50期PDF

    - **标题含义**:这指的是《电脑报》在2018年发行的第50期PDF版电子文档。 - **描述含义**:与标题相同,再次强调了该文件是《电脑报》2018年第50期的PDF版本。 ### 2. 电脑报 - **含义**:《电脑报》是一份专注于...

    《电脑报》2013年期刊汇总(持续更新)

    资源名称:《电脑报》2013年期刊汇总(持续更新)资源目录:【】《电脑报》(2013年第14期 4月15日出版)【】电脑报 13年第35期【】电脑报 13年第36期【】电脑报 2013年37期【】电脑报 2013年第10期3月18日出版 绝对...

    电脑报第一期

    电脑报第一期

    电脑报2019年第03期

    《电脑报》于1992年1月3日由西南大学、重庆市科协正式创刊出版 是西南大学、重庆市科协主办和主管的计算机周报。17年来坚持“普及计算机知识,提高全民族文化素质”的办报宗旨,已由最初四开四版,扩大到四开一百版...

    《电脑报》2018年第34期

    但是,我们可以从【标题】和【描述】中提取出与电脑相关的信息,并围绕《电脑报》2018年第34期出版的情况展开讨论,以满足提问的要求。 《电脑报》是一份在中国大陆发行的电脑科技类报纸,由西南大学、重庆市科协...

    《电脑报》2017年 第26期

    《电脑报》2017年 第26期 电脑报是目前中国第一大IT报刊、它的简单、易学、易懂和普及性的专业内容成为IT入门初学用的掌中至宝,而它每年发行的《电脑报合订本》更是IT从行人员的必不可少的技术手册。 计算机方面...

    电脑报2018年第43期

    作为一份专注于计算机领域的周报,《电脑报》在全国电子和计算机类报纸中的发行量始终保持第一的位置。这得益于其持续不断地提供高质量的技术资讯、评测报告以及实用技巧等内容,吸引了大量读者的关注和支持。目前,...

    电脑报2018年第33期-2018年8月20日

    目前最新电脑报2018年第33期,报纸日期2018年8月20日。

    电脑报2019年第6期-2018年2月18日

    综上所述,电脑报2019年第6期-2018年2月18日的版面内容,尽管无法详细列出,但可以肯定的是它一定包含了新闻速递、产品评测、技术教程、问题解答、行业分析、游戏动态以及互动交流等诸多方面的精彩内容。这份报纸...

    电脑报2019年第32期-2019年8月19日

    以“电脑报2019年第32期”为例,虽然由于OCR技术的局限性,我们未能获得报纸的详细内容,但从IT报纸通常覆盖的主题来看,我们可以大致推断本期报纸可能包含的丰富内容。 首先,在“最新科技趋势”方面,2019年的IT...

    电脑报2018年第47期-2018年12月3日

    1. 标题中提到的“电脑报2018年第47期-2018年12月3日”,表明这是一份发行于2018年12月3日的电脑报,其中可能涉及当期的计算机科技趋势、产品评测、软件更新等信息。 2. 描述中仅提到报纸日期为2018年12月3日,未...

    电脑报2019年第05期

    《电脑报》于1992年1月3日由西南大学、重庆市科协正式创刊出版。 ,是西南大学、重庆市科协主办和主管的计算机周报。17年来坚持“普及计算机知识,提高全民族文化素质”的办报宗旨,已由最初四开四版,扩大到四开一...

    《电脑报》2017年第42期

    《电脑报》2017年第42期,高清PDF矢量版。 电脑报官方网站是中国发行量最大的计算机报——《电脑报》的官方网站,也是一个专业、全面、及时的数码产品信息聚合站。为用户及时提供每期电脑报上的精彩文章以及丰富的...

    电脑报2018年第32期-2018年8月13日

    在2018年8月13日的电脑报第32期中,可能包含的知识点可以分为以下几个方面: 1. IT行业新闻:报道了2018年8月前后发生的重要科技事件,包括新产品发布、技术突破、政策法规变动等。 2. 硬件评测:可能涉及最新的...

    《电脑报》 2013年第2期 pdf

    《电脑报》 2013年第2期 pdf

    《电脑报》2017年 第29期

    《电脑报》作为中国历史悠久的计算机技术类杂志,一直以其深度的科技报道、实用的技巧分享和详尽...通过阅读2017年第二十九期,读者不仅可以了解到当年的科技趋势,还能学习到实用的技能,为自己的数字化生活增添色彩。

    电脑报阅读系统2012显示图片补丁

    电脑报阅读系统2012是一款专为用户浏览和管理《电脑报》电子版设计的软件,它提供了丰富的功能,帮助用户方便地查看和搜索往期的电脑报内容。然而,用户在使用过程中可能会遇到一个常见问题:当硬盘上没有保存相关的...

Global site tag (gtag.js) - Google Analytics