博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手机 用户界面和多媒体 版面有价值问题整理 j2medev com 0406更新
阅读量:3948 次
发布时间:2019-05-24

本文共 3932 字,大约阅读时间需要 13 分钟。

                width="336" height="280" align="center" src="http://www.zealware.com/csdnblog336280.html" scrolling="no">
  

预告:j2medev.com将开始整理各个版面的有价值问题,并以PDF格式集结,敬请期待。

                                                                                                               
           

出品商

           
           

产品名称

           
           

产品版本

           
           

J2medev.com

           
           

版面有价值的问题合集

           
           

0.1

           

j2medev.com之“用户界面和多媒体”版面

有价值问题的整理

历史

                                                                                                                                                                                                       
           

Version

           
           

Date

           
           

Creator

           
           

Description

           
           

1.0.0.1

           
           

2006-4-4

           
           

郑昀

           
           

草稿

           
           

1.0.0.2

           
           

2006-4-6

           
           

郑昀

           
           

第二稿

           

 

1 全屏问题

 

全屏/FullCanvas/setFullScreenMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                       
           

关键词

           
           

详细描述

           
           

 

           
           

SonyEricsson T630

           
           

该款手机的参数:索尼爱立信 T630 SonyEricssonT630R401 ProfileMIDP-1.0 ConfigurationCLDC-1.0

           

“据我所知,不可以实现全屏显示。”

           

--- lulei204

           
           

 

           
           

SonyEricsson K700c

           
           

k700c  直接用nokiaFullCanvas,可以全屏176 x 220

           

k700cmidp2.0的那个this.setFullScreenMode(true);也是可以全屏的,176x220

           

k700c直接用nokiaFullCanvas全屏好像是176*208,直接拿nokia60上的程序可以直接放进去。键值和60的也是相同的,只是多了一个返回键,我忘了值是多少了。用2.0GameCanvas大小是176*220

           

--- lulei204

           
           

 

           
           

不使用FullCanvas实现全屏的方法

           
           

为了用标准的SUN WTK2.1开发能兼容各种机型的MIDP2.0游戏,会遇到一个奇怪的全屏问题,在K700上好好的,到了Nokia上居然死活显示一半,费了一番功夫后,终于不用FullCanvas实现了兼容K700Nokia的全屏显示,方法如下:

           

在索爱的K700上,实现全屏很简单,如下写法就可以了:

           

public Canvas1()

           

{

         super(false);

           

        this.setFullScreenMode(true);

           

        this.width=getWidth();

           

        this.height=getHeight();

           

} 得到的屏幕大小是176*220

           

Nokia上就比较奇怪了,这种方式取得的widthheight居然是176*144

           

需要加以下代码修正一下:

           

if(width>=176)

           

{

     if(height<208)

           

    {

           

         height=208;

           

    }

           

} 绘图部分都以widthheight为基准。

           

另外canvas1不能继承系统的GameCanvas,因为系统GameCanvas里的缓冲图还是176*144的,画出来就只能是半屏,我用j2me polish里的GameCanvas修改一下后,放到src里代替系统GameCanvasOK了。

           

修正过的GameCanvas代码如下:

           

http://www.j2medev.com/bbs/dispbbs.asp?

           

BoardID=19&ID=3218&replyID=&skin=1

           

---alexhy

           
           

FullCanvassetFullScreenMode()的区别

           
           

setFullScreenMode用于MIDP2.0设备上。com.nokia.mid.ui.FullCanvasNokia UI API 1.1的包,用于MIDP2.0设备上,SonyEricsson手机也支持。

           

 

           

FullCanvas是肯定可以实现全屏幕显示的,但是MIDP2.0里面的setFullScreenMode()只是实现为尽量使用最大的屏幕空间,但是不一定是全屏幕,要看各个手机的实现。”

           

---mingjava

           

FullCanvas不能加CommandsetFullScreenMode(true)可以加上Command()。只是我加上一个按键时,却不管把它设在哪里,只能是右键响应。”

           

---风过留痕

           
           

FullCanvasCanvasGameCanvas分别有什么不同

           
           

FullCanvasCanvas的子类,实现全屏的功能,而且把按键针对nokia的手机进行了映射。其他没有什么区别。”

           

---migjava

           

GameCanvas也是Canvas的子类,自MIDP2.0起提供,专门针对游戏增加了一些功能。在按键和显示各方面的运用都和Canvas有较大的不同。”

           

---efei

           
           

MotorolaMIDP1.0手机

           
           

motorola如果不支持MIDP2.0,应该就没办法实现全屏了。全屏下的菜单很好实现,不用搞得象Command那么复杂,那个Command用起来就是很不爽,还是自己写最好。”

           

---海标

           
           

Nokia S60全屏后的Canvas高度

           
           

“canvas. setFullScreenMode(true)后,一定让他被绘制一次,系统会调用sizechange(int w,int h)wh肯定是全屏的。仅调用setFullScreenMode (true)则好象各系统有不同处理。

           

---atchome

           

 

           

“You can call getWidth() getHeight() after Canvas.showNotify(). Then it will return the correct value. eg. 176*208”

           

--- okboy001

           

 

           

系统第一次回调paint()方法时可以获得正确的屏幕尺寸

           

原因如atchome所说

           

--- imshark_jinni

           

 

           

Nokia S60真机上这是一个BUG似乎:

           

setFullScreenMode(true);调用之后,

           

getHeight()返回的并不是全屏后的高度,比如他本应该返回208

           

但是他却返回144,所以,在真机测试时也要小心nokia s60的这个bug

           

不要因为屏幕高度获取不正确,导致fillRect与你预想不一致。

           

 

           

以上这个BUG,起码我的Nokia 7610就是这样。

           

所以我必须在setFullScreenMode(true);全屏之后

           

通过下面代码来获取真实的canvas高度:

           

 

           

Code:

           

public abstract class PopupCanvas extends Canvas

           

{

           

。。。。

           

/*

           

          * 针对Nokia全屏情况下getHeightBUG,此函数出自于

           

          * http://discussion.forum.nokia.com/f...?threadid=48826

           

          */

           

         public int getHeight(){

           

                try{

           

                       if("Nokia".compareTo(

           

System.getProperty("microedition.platform").substring(0,5))

           

 == 0)

           

                              return 208;

           

                       else

           

                              return super.getHeight();

           

                }

           

                catch(Exception e){

           

                       return super.getHeight();

           

                }

           

              }

           

}

           

---zhengyun

           
           

 

           

 

2 ImageByteArray转换问题

 

Image/byte[]/Convert

                                                                           
           

关键词

           
           

详细描述

           
           

Image对象转换为byte[]

           
           

image-(getGraphics)->graphic-(setClip, 对每个象素getColor)->原始byte[]

           

--- rypan

           

 

           

“要是在 J2ME 的话, 看来只有 Image.getRGB() 能帮上:

           

还有做int[] -> byte[] 的动作, 可以考虑用 ByteArrayOutputStream

           

+ DataOutputStream, int[] dos.writeInt 的方法写在 Byte array .

           

当然可以用最老土的方法, 不知道那种快:

           

byteArray[i] = intArray[j] & 0xFF;

           

byteArray[i+1] = (intArray[j] >> 8)& 0xFF;

           

byteArray[i+2] = (intArray[j] >> 16)& 0xFF;

           

byteArray[i+3] = (intArray[j] >> 24)& 0xFF;

           

--- wapeter

           

 

           

           

public static byte[] getByteArray(Image image)

           

{

           

       int raw[] = new int[image.getWidth() * image.getHeight()];

           

       image.getRGB(raw, 0, image.getWidth(), 0, 0,

           

              image.getWidth(), image.getHeight());

           

       byte rawByte[] = new byte[image.getWidth() * image.getHeight() * 4];

           

       int n = 0;

           

       for(int i = 0; i < raw.length; i++)

           

       {

           

              int ARGB = raw[i];

           

            &

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!

转载地址:http://tlwzi.baihongyu.com/

你可能感兴趣的文章
Android开发——贝塞尔曲线解析
查看>>
Android开发——微信Android架构历史
查看>>
Android开发——ListView的复用机制源码解析
查看>>
Android开发——WebView轻量缓存优化
查看>>
Android开发——Android7.0的适配注意点小结
查看>>
Android开发——架构组件LiveData源码解析
查看>>
IDEA常用快捷键整理
查看>>
【Vue】两个元素同一行显示
查看>>
XXL-Job使用
查看>>
如何在SwaggerAPI中添加统一授权认证
查看>>
多线程
查看>>
【Linux】Centos7 常用命令
查看>>
【Redis】Centos7下安装Redis
查看>>
【Redis】Centos7下搭建Redis集群
查看>>
【Redis】Centos7下搭建Redis集群——哨兵模式
查看>>
【Linux】本地ping不同VM虚拟机
查看>>
【SpringCloud】Hystrix
查看>>
乐观锁、悲观锁、公平锁、可重入锁
查看>>
快速阅读——《认知篇》
查看>>
一本书的学习
查看>>