J2ME开发全程简述(四)开发周边(下)

二十、在J2ME手机编程中使用字体
在J2ME手机编程中,可以通过使用字体类——Font在低级用户界面中,获得更好的表现效果,那么如何使用Font类呢?
 
   首先,由于手机设备的限制,手机中支持的字体类型很有限,所以在J2ME中只能使用手机支持的默认字体来构造Font类对象。下面是创建Font类的对象时使用的方法:
  getFont(int face,int style,int size);
    例如:
  Font font = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font. SIZE_MEDIUM);
  无论哪一个参数,都只能使用系统设置的数值,这些数值具体的大小在不同的手机上可能不同。下面对于其中的三个参数的取值做详细的介绍:

  face参数指字体的外观,其的取值:
  FACE_MONOSPACE——等宽字体
  FACE_PROPORTIONAL——均衡字体
  FACE_SYSTEM——系统字体

  style参数指字体的样式,其的取值:
  STYLE_BOLD——粗体
  STYLE_ITALIC——斜体
  STYLE_PLAIN——普通
  STYLE_UNDERLINED——下划线
  STYLE_BOLD | STYLE_ITALIC——粗斜体
  STYLE_UNDERLINED | STYLE_BOLD——带下划线粗体
  STYLE_UNDERLINED | STYLE_ITALIC——带下划线斜体
  STYLE_UNDERLINED | STYLE_ITALIC | STYLE_BOLD——带下划线的粗斜体

  size参数指字体的大小,其的取值:
  SIZE_SMALL——小
  SIZE_MEDIUM——中
  SIZE_LARGE——大

  通过上面的参数的值,可以组合出你需要的字体对象。
  下面是一些常用的字体操作:
  1. 获得系统的默认字体:
  Font font = Font.getDefaultFont();
  2. 在panit方法内部,假设Graphics参数的名称为g,则获得当前字体的方法是:
  Font font = g.getFont();
  3. 在panit方法内部,假设Graphics参数的名称为g,则设置当前字体的方法是:
  g.setFont(font);
  其中font为你构造好的字体对象。
  4. 在MIDP2.0中,List可以设置每行的字体格式,方法是:
  list.setFont(0,font);
  则上面的代码是将list中的第一行设置为font类型的字体。

二十一、在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;
 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值