J2ME中怎么保存更新后的界面?求高手相助啊
发布时间:2010-05-30 10:52:14 文章来源:www.iduyao.cn 采编人员:星星草
J2ME中如何保存更新后的界面?求高手相助啊!!!
我想在J2ME实现一个可以自动更新记录的程序,打开这个程序后会自动更新,关闭这个程序后,再打开这个程序,可以显示更新后的内容。请问改用什么方法实现呢?我好茫然啊。。
------解决方案--------------------
j2me界面上的东西都可以看成一张图片,一个屏幕就是一张图片,
你可以
Image image = Image.createImage(240,320);
Graphics gs = image.getGraphics();
创建一个静态的IMAGE,用这个IMAGE把屏幕上的东西都画再这个image上面。
最后再把这个image画在paint()方法中的Graphics上,
关闭程序后你只要把这个image写到RMS或者文件系统中,
打开这个程序你再把这个image流读出来再画在Graphics上就OK了
这是用的二级缓存画图片
------解决方案--------------------
Image image = null;
Graphics gs = null;
public int[] rgb = new int[240 * 320];
public int imageId = -1;
//打开程序
public void open()
{
try {
RecordStore rs = RecordStore.openRecordStore("image", true);
byte[] data = rs.getRecord(imageId);
if(data == null || data.length <= 0)
{
image = Image.createImage(240,320);
}
else
{
ByteArrayInputStream byin = new ByteArrayInputStream(data);
DataInputStream dain = new DataInputStream(byin);
for(int i = 0; i < dain.available(); i++)
{
rgb[i] = dain.readInt();
}
image = Image.createRGBImage(rgb, 240, 320, true);
dain.close();
byin.close();
}
gs = image.getGraphics();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//把所有东西先画到这个image上面
public void paintImage()
{
// gs.fillArc(x, y, width, height, startAngle, arcAngle)
// gs.fillRect(x, y, width, height)
// .....................
//把东西画好后。
}
protected void paint(Graphics g) {
// TODO Auto-generated method stub
//把画好后的image画在这个Graphics上面
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.setColor(255,255,255);
g.drawImage(image, 0, 0, g.TOP | g.LEFT);
}
//关闭程序
public void close()
{
try {
image.getRGB(rgb, 0, 240, 0, 0, 240, 320);
RecordStore rs = RecordStore.openRecordStore("image", true);
ByteArrayOutputStream by = new ByteArrayOutputStream();
DataOutputStream data = new DataOutputStream(by);
for(int i = 0; i < rgb.length; i++)
{
data.writeInt(rgb[i]);
}
data.flush();
data.close();
by.flush();
by.close();
imageId = rs.addRecord(by.toByteArray(), 0, (by.toByteArray()).length);
rs.closeRecordStore();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
------解决方案--------------------
多用低级界面做就是了
------解决方案--------------------
肯定要重画了,,
反正是画一张静态的IMAGE,不影响性能
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
Android版块严惩倒分行为,希望大家配合维持正当的技术交流 - 移动平台 / 非技术区
近期发现Android版块一些帐号在进行倒专家分操...
-
Java应用程序调用系统中任意一个so文件的方法 大家看看是否可行?
如果我想编写一个apk程序,而这个apk程序要调用系统中的非JNI的so...
-
关于ListView中CheckBox 用程序全选的问题
LisetView中view布局
XML code
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLay...
-
请教一个关于广播接收器优先级的问题,为什么我无论如何都不能超越QQ,360,GO等手机助手,管家?
android官方好像说最高1000,我试过...
-
Android 布局framelayout到底怎么用
简单demo就不要说了哈,知道framelayout的简单实例,感觉没有收获,看了源码,也没有什么感觉。我想...
-
如果调用系统剪裁功能
首先调用系统图库,获取图片,然后对该图片进行剪裁,大家帮忙看下我的代码哪里有问题
Java code
Uri uri = data...
-
求4.0的framework.jar包
如题。哪位朋友有编好的4.0的framework.jar,给个下载地址,或发我邮箱heixue888@qq.com
3Q~
------解决方案...
-
关于读取手机通讯录的问题
使用Android1.5的读取方法:
Cursor cur = context.getContentResolver().query(Contacts.Peop...
-
请教如何用android画图
我想利用android写一个画图程序,请问我应该重点看android的哪些部分,请大家给点建议,还有大家是否有相关的工...
-
分享HTC手机Android源代码下载地址
http://developer.htc.com/
------解决方案--------------------
不错,可惜只有kernel的~~...