WEB开发网
开发学院WEB开发Jsp 在MIDP1.0中简单模拟图片翻转功能 阅读

在MIDP1.0中简单模拟图片翻转功能

 2008-01-05 20:12:55 来源:WEB开发网   
核心提示:声明:该程序由于速度很慢,只做为技术参考,在MIDP1.0中简单模拟图片翻转功能,//--在MIDP1.0中,大家都知道并没有提供图片翻转功能,呵呵]最后,假如大家有更好的解决办法一定要通知我呀,这里提出了一个简单实现图片翻转功能的方法,虽然该方法并不实用(在速度很快的手机上也许能用的上)

声明:该程序由于速度很慢,只做为技术参考。
//--------------------------------------------------------------------------------------------------------------------------
在MIDP1.0中,大家都知道并没有提供图片翻转功能,这里提出了一个简单实现图片翻转功能的方法,虽然该方法并不实用(在速度很快的手机上也许能用的上),但希望能给大家一些帮助。
 public void paintImage_Level(Graphics g,Image image,int x,int y)
 {//这段代码主要实现了图片的水平翻转,原理很简单。
   for(int i=0;i<image.getWidth();++i)
   {
      g.setClip(x+i,y,1,image.getHeight());
      g.drawImage(image,x-image.getWidth()+i*2+1,y,Graphics.TOPGraphics.LEFT);
   }
 }
//----------------------------------------------------------------------------------------------------------------------------
 public void paintImage_Antic(Graphics g,Image image,int x,int y)
 {//这段代码主要实现了图片的逆时针90度的翻转
    for(int i=0;i<image.getWidth();++i)
   {
      for(int j=0;j<image.getHeight();++j)
      {
        g.setClip(x+i,y+j,1,1);
        g.drawImage(image,x-image.getWidth()+j+i+1,y+j-i,Graphics.TOPGraphics.LEFT);
      }
   }
 }
大家可能已经看出该功能的实现方法了,就是使用setClip()函数来控制绘图的区域,来实现类似绘制像素点的功能。缺点很明显,绘制速度太慢。
下面做了一点小小的改进,使用了双缓冲技术,图片的显示速度快了很多,下面只列出部分的代码。
Image mid1;
……  ……
mid1=Image.createImage(130,130);
paintImage_Level(mid1.getGraphics(),image,(getWidth()-image.getWidth())/2,(getHeight()-image.getHeight())/2);
…… ……
g.drawImage(mid1,(getWidth()-image.getWidth())/2,(getHeight()-image.getHeight())/2,Graphics.TOPGraphics.LEFT);
虽然绘制速度快了很多但缺点一样也很多
第一:载入速度比较慢;
第二:只适用于矩形(无透明)图片;
第三:占用了很多内存。
[注:本文中的代码在索尼爱立信模拟器上测试通过,为了不影响各位手机的寿命,最好不要在实机上运行。呵呵]

最后,假如大家有更好的解决办法一定要通知我呀,我在这里先谢谢了。


Tags:MIDP 简单 模拟

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接