RGB转换成十六进制

最近在项目中遇到了这样的需求,需要写一个方法来将RGB(255,255,255)这种格式转换成十六进制来使用,下面我将自己用到方法写一下:

final static char[] digits = { ‘0′, ‘1′, ‘2′, ‘3′, ‘4′, ‘5′, ‘6′, ‘7′, ‘8′, ‘9′, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ’s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’ };

public static String toUnsignedString(int param, 4)
{
char[] buf = new char[32];
int charPos = 32;
int radix = 1 << shift;
int mask = radix – 1;
do
{
buf[--charPos] = digits[i & mask];
i >>>= shift;
}
while (i != 0);

return new String(buf, charPos, (32 – charPos));
}

如何配置j2me开发环境

1很多人在开始学习j2me的时候遇到的第一个问题就是如何配置j2me的开发环境,我一般用的是eclipse开发,所以在这里说一下在eclipse中如何配置j2me的开发环境:
1.首先需要了解在配置前要有eclipse,eclipseme和WTK,并且这三个的版本是需要相对应的,版本不匹配的话是无法进行配置的。以eclipse3.2为例,那么与他相对应的需要eclipseme1.5.3WTK2.2,准备完成开始进行安装;
2.在安装之前要确定先安装了jdk(我使用的是jdk1.5.0_12),然后安装WTK2.2,然后解压eclipse-SDK-3.2.1-win32.zip后将其放在一个工作目录下,双击eclipse.exe打开eclipse3.2,选择”Help—->Software Updates—->Find and Install”,打开弹出一对话框后选择第二项“Search for new features to install”点击“Next”,在弹出的对话框右侧选择“New Archived Site”,在弹出的对话框中选择“eclipseme.feature_1.5.3_site.zip”插件所在的目录,选好后按照提示一步一步安装即可;安装好后eclipse会重新启动一次,这样开发j2me的环境就配置好了,很简单吧呵呵!

记录

这些简单的方法总是记不住或许是从没用心记过,记录在这里吧,用的时候可以随时看看,以后遇到其他的都添加在这里:
1.Runtime.getRuntime().totalMemory() 得到手机的总内存
Runtime.getRuntime().freeMemory() 得到当前剩余内存

2.读取收到的流文件
DataInputStream datainput = new DataInputStream(in);
StringBuffer responseMessage = new StringBuffer();
int ch;
while( (ch = datainput.read() )!= -1 )
{
responseMessage.append( (char) ch );
}
System.out.println(“内容:” + String.valueOf(responseMessage));

J2ME系统属性及其作用列表

       在J2ME开发中,我们经常需要和手机系统进行交互,获得一些和系统相关的信息,在J2ME API设计中,提供了一系列的系统属性,可以让我们来进行获得,下面就一一进行介绍

表1   CLDCMIDP和JTWI属性
属性名称
                    属性作用
microedition.profiles
代表手机支持的MIDP版本,返回格式值为MIDP-1.0或MIDP-2.0
microedition.configuration
代表手机支持的CLDC版本,返回格式值为CLDC-1.0或CLDC-2.0
microedition.locale
代表手机所在的国家或地区,返回值格式为en-US
microedition.platform
代表手机的品牌和型号,Nokia手机的返回值格式为Nokia6310i/4.42
microedition.encoding
代表手机默认的字符集名称,返回值格式为ISO-8859-1
microedition.commports
代表手机可以使用的串口列表,返回值中各个串口之间使用逗号分隔
microedition.hostname
MIDP2.0定义,代表本地主机名称,需要手机支持
microedition.jtwi.version
代表手机支持的JTWI版本,值必须是1.0
 
表2 可选包属性
属性名称
属性作用
microedition.media.version
代表手机支持的MMAPI版本,如果不支持则返回null
microedition.pim.version
代表手机支持的PIM API版本,如果不支持则返回null
microedition.m3g.version
代表手机支持的M3G API版本,如果不支持则返回null
microedition.location.version
代表手机支持的Location API版本,如果不支持则返回null
Bluetooth.api.version
代表手机支持的BT API版本,如果不支持则返回null
microedition.io.file.
FileConnection.version
代表手机支持的FC API版本,如果不支持则返回null
microedition.global.version
代表手机支持的Mobile Internationalization API(JSR-238)版本,如果不支持则返回null
microedition.chapi.version
代表手机支持的CH(Content Handler) API(JSR211)版本,如果不支持则返回null
microedition.sip.version
代表手机支持的SIP API版本,如果不支持则返回null
 
表3 MMAPI属性
属性名称
属性作用
supports.mixing
代表手机是否支持混音(同时播放多个Player),返回值为true或false
supports.audio.capture
代表手机是否支持声音捕获(录音),返回值为true或false
supports.video.capture
代表手机是否支持视频捕获(录像),返回值为true或false
supports.recording
代表手机是否支持记录(record),返回值为true或false
audio.encodings
代表手机支持的声音格式,返回值格式为encoding=audio/wav,多个格式之间使用至少一个空格进行间隔
video.encodings
代表手机支持的视频格式,返回值格式为encoding=video/3gpp,多个格式之间使用至少一个空格进行间隔
video.snapshot.encodings
代表手机使用getSnapshot方法获得的视频快照格式,返回值格式为encoding=png,多个格式之间使用至少一个空格进行间隔
streamable.contents
代表手机支持的流媒体格式,返回null代表不支持
 
表4 Wireless Messaging API属性
属性名称
属性作用
wireless.messaging.sms.smsc
代表手机发送短信时的短信服务中心号码
 
表5 FileConnection API
属性名称
属性作用
fileconn.dir.photos
代表手机中存储照片和其它图片的目录,例如file:///c:/My files/ Images /
fileconn.dir.videos
代表手机中存储视频的目录,例如file:///c:/My files/Video clips/
fileconn.dir.tones
代表手机中存储声音的目录,例如file:///c:/My files/Tones/
fileconn.dir.memorycard
代表手机中存储卡的根目录例如file:///d:/
fileconn.dir.private
(Nokia S40不支持) 
代表手机中MIDlet的私有工作目录,例如file:///c:/System/MIDlets/[1015f294]/scratch
fileconn.dir.photos.name
代表手机中图片目录的名称,例如Images
fileconn.dir.videos.name
代表手机中视频目录的名称,例如Video clips
fileconn.dir.tones.name
代表手机中声音目录的名称,例如Sound clips
file.separator
代表手机中的文件分隔符,例如/
fileconn.dir.memorycard.name
代表手机中存储卡的名称,例如Memory card
 
      使用这些属性,可以获得在程序运行过程中需要的很多和系统相关的信息,也可以使用表2中的属性来获得手机是否支持对应的可选包等信息。
       System.getProperty(“属性”);

JSR184 & JSR239

今天一个朋友问我jsr184和jsr239的区别,这两个规范都是关于3D graphics的,这方面一直没有接触过,在网上搜了搜,看到一blog上的解释还不错,转过来看看:

jsr184:Mobile 3D Graphics API 简称M3G,M3G的直接访问模式是建立在OpenGL的基础上的,作为它的一个子集和精简部分,保留了很多有效的功能。

JavaTM bindings to the OpenGL ES (Embedded Subset) native 3D graphics library. OpenGL ES 是人们熟知的 OpenGL 3D 库的子集,事实上已成为约束设备上本地 3D 实现的标准。JSR 239 定义了一个几乎与 OpenGL ES 的 C 接口相同的 Java API,使现有 OpenGL 内容的移植更为容易。

附:1.OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。OpenGL是个与硬件无关的软件接口。

2.opengl与Directx的区别
   OpenGL 只是图形函数库。
   DirectX 包含图形, 声音, 输入, 网络等模块。
   单就图形而论, DirectX 的图形库性能不如 OpenGL
   OpenGL稳定,可跨平台使用。但 OpenGL 多需要显卡支持.

关于j2me中可选包PIM的学习

这段时间学习了下PIM的东西,把自己理解的整理总结一下,有很多不足的地方希望大家一起来补充!

首先了解一下PIM(personal infomation management)即个人信息管理,是j2me中可选包里的jsr75。它定义了一系列的API,在javax.microedition.pim包里,主要对用户手机中的通讯录,提醒,日程等进行操作。因此PIM定义了三种信息类型,分别是Contact list, Event list , ToDo list,设备不一定全部支持这三种类型,但是需要至少支持一种。下面主要是针对Contact list类型的总结: Read more