最近使用j2me所遇到的问题~

1. 好多程序在Sun的模拟器上测试非常好,但是拿到Windows Mobile上面之后,问题就出现了N多,其中好多问题可能都是因为程序运行时占用了太多的空间。

 

a). 在Sun模拟器上运行正常,在Mobile上装好之后,无法运行,提示OutofMemory之类的信息,这可能就是因为你的程序运行时申请内存申请不到了,你可以检查一下你的程序里面是不是使用了太多的图片资源,是不是有很多全局变量,基本上就是这块的原因导致的。

b). 用MMAPI来播放gif动画,在Windows mobile上显示一片空白,貌视不支持……,若想在所有平台上使用,最好还是自己解码,在网上有现成的解码代码,使用起来也很简单。

c). 在程序开头播放了gif动画之后(自用网上的解码类),后面程序的主界面显示不出来,只是一片空白,但在Sun的模拟器上运行正常。如果去除gif动画,则在mobile上运行正常。最后一点一点的更改paint中的代码,因为我使用了双缓冲,在最后往屏幕的Graphics上draw的时候拉伸了一下图片,就导致了整个屏幕空白,但如果不使用开始的gif,就正常。 我估计还是因为空间申请不到导致的问题,因为拉伸的时候,会产生一个临时的Image,这个Image如果申请空间出错的时候,也就无法显示了。

d). 在程序mobile上运行的过程中,感觉乱了套,有些界面无法显示。好像还是因为这个问题

 

我记得在mobile上好像每个程序可以有32M的虚拟内存吧,我的程序其实也不大,但为啥频频申请空间失败呢?这个问题也不明白,所以写程序的时候要注意着点,有些全局的东西该释放的时候,就将其置为null,系统会自动释放它所占用的空间。

 

2. 美工给做的图,看起来很漂亮。但是程序运行出来之后,就在背景上出现一个圆,好像一个大太阳。与是想尽一切办法,也在众多网友的帮助下,最终还是没能确定问题出在哪。

不过现在感觉,90%的可能性是因为图片造成的问题,因为美工做的这个背景图片,颜色是渐变的,但在手机上无法区分那么清楚,在某个临界值以上的显示一种颜色,在这个临界值一下的显示一种颜色,所以就出现了一个明显的圆圈。

 

3. 写了N天j2me程序,今天终于知道Sun的模拟器原来也可以支持鼠标触摸呀

更改它的方法是:

打开 C:/WTK2.5.2_01/wtklib/devices 目录

这下面有几个文件夹,分别对应几种模拟器,这几个文件夹下面都有一个 .properties文件,这个就是模拟器的配置文件。打开它之后,查找touch_screen项,将其改为true

即:touch_screen=true

然后重启模拟器,就可以支持触摸了。

 

4. 做动画的时候,要使某个图片不断的变化然后将其画在屏幕上。里面用到了循环,在循环里面调用了repaint,但调试的时候却发现,执行完repaint之后,并不会去调用paint函数,而是最后循环执行完了之后再去调用一次paint,所以根本形不成动画的效果。

后来在网上发贴询问之后才知道repaint并不会强制去调用paint函数。要想强制刷新屏幕,必须要还要调用 serviceRepaints。即要用如下的代码:

repaint();
serviceRepaints();

这样就可以强制刷新了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值