扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
二十一、在J2ME手机程序开发中使用颜色
在J2ME手机开发过程中,需要经常用到颜色来进行绘制,增强程序的表现效果,下面就介绍一下如何使用颜色。
由于J2ME技术比较简单,所以没有实现专门的颜色类,而只是使用RGB的概念来代表颜色。这里简单介绍一下RGB的概念,颜色是由红(Red)、绿(Green)、蓝(Blue)三原色组成的,所以可以使用这三个颜色的组合来代表一种具体的颜色,其中R、G、B的每个数值都位于0-255之间。在表达颜色的时候,即可以使用三个数字来表达,也可以使用一个格式如0X00RRGGBB这样格式的十六进制来表达,下面是常见颜色的表达形式:
红色:(255,0,0)或0x00FF0000
绿色:(0,255,0)或0x0000FF00
蓝色:(255,255,255)或0x00FFFFFF
其他颜色也可以通过上面的方式组合出来。
知道了颜色的表达方式以后,下面来介绍一下如何在J2ME程序中使用颜色,涉及的方法均在Graphics类中,有以下几个:
1.getColor():
获得当前使用的颜色,返回值是0x00RRGGBB格式的数字。例如:
int color = g.getColor();
其中g为Graphics类型的对象。
2.setColor(int RGB):
设置使用的颜色。例如:
g.setColor(0x00ff0000);
3.setColor(int red, int green, int blue)
和上面的方法作用一样,例如:
g.setColor(255,0,0);
在设置了Graphics使用的颜色以后,再进行绘制的时候,就可以绘制指定的颜色了。
二十二、在J2ME联网应用中获得客户端的手机号码
在J2ME程序开发过程中,为了一定的需要,经常需要来获得用户的手机号码,但是这个功能却在标准的J2ME类库中没有提供。
在使用中国移动的CMWAP方式连接网络时,中国移动会将用户的手机号码放在一个名称为x-up-calling-line-id的头信息中,可以通过读取该头信息,获得用户的手机号码,具体代码如下:
String usermphone = http.getHeader("x-up-calling-line-id");
其中http是HttpConnction类型的对象。
二十三、使用J2ME发送手机短信息
在程序中,发送短信息的方式一般有三种:
1、 使用程序在网络上发送短信息,例如各大网站的短信业务。这种方式是通过程序将信息发送给运营商的网关服务器,然后通过运营商的网络发送给手机。
2、 在计算机中,通过数据线连接到手机,然后通过手机来发送短信息。这种方式是通过使用AT指令来实现。爱立信手机的AT指令你可以在以下地址找到:http://mobilityworld.ericsson.com.cn/development/download_hit.asp
3、 通过在手机中运行的程序来发送短信息。这个正是本文实现的方式。
在J2ME中,如果想发送短信息,需要使用WMA包,MIDP2.0中已经包含,MIDP1.0中可以通过厂商提供的扩展API实现,和WMA的类库基本一样。
下面是使用WMA向指定手机号码发送短信息的一个方法,很简单。当然WMA也提供了其他的方式来发送更多的内容。
// SMSUtil.java package my.util; import javax.wireless.messaging.*; import javax.microedition.io.*; /** * 发送文本短信息的方法 */ public class SMSUtil { /** * 给指定号码发送短信息 * @param content 短信息内容 * @param phoneNumber 手机号码 * @return 发送成功返回true,否则返回false */ public static boolean send(String content,String phoneNumber) { //返回值 boolean result = true; try { //地址 String address = "sms://+" + phoneNumber; //建立连接 MessageConnection conn = (MessageConnection)Connector.open(address); //设置短信息类型为文本,短信息有文本和二进制两种类型 TextMessage msg = (TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE); //设置信息内容 msg.setPayloadText(content); //发送 conn.send(msg); } catch(Exception e) { result = false; //未处理 } return result; } } |
二十四、使用简单的J2ME程序测试MIDlet的生命周期
在MIDlet程序学习中,生命周期是一个比较抽象的概念。其实生命周期就是一个简单的规定,规定了MIDlet中的每个方法,什么时候被系统调用。下面是一个示例代码,在每个方法的内部都输出一条语句,可以根据程序的输出结果来验证各方法被调用的顺序,具体代码如下:
//文件名:LifeCircleMIDlet.java import javax.microedition.midlet.*; /** * 测试MIDlet的生命周期 */ public class LifeCircleMIDlet extends MIDlet { /** * 默认构造方法 */ public LifeCircleMIDlet() { System.out.println("默认构造方法"); } /** * 启动方法 */ public void startApp() { System.out.println("startApp方法"); } /** * 暂停方法 */ public void pauseApp() { System.out.println("pauseApp方法"); } /** * 销毁方法 * @param b */ public void destroyApp(boolean b) { System.out.println("destroyApp方法"); } } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者