博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
J2ME:clip窗口可使用anchor--转(转)
阅读量:2451 次
发布时间:2019-05-10

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

J2ME:clip窗口可使用anchor--转(转)[@more@]

  /**

  

  * drawClip 画一个图片的一部分。clip窗口可使用anchor。

  

  *

  

  * @param g

  

  *  Graphics

  

  * @param x

  

  *  int 要画的位置x

  

  * @param y

  

  *  int 要画的位置y

  

  * @param image

  

  *  Image 图片

  

  * @param clipX

  

  *  int clip在图片中的坐标x

  

  * @param clipY

  

  *  int clip在图片中的坐标y

  

  * @param clipWidth

  

  *  int clip在图片中的宽度

  

  * @param clipHeight

  

  *  int clip在图片中的高度

  

  * @param anchor

  

  *  int 链接锚点

  

  */

  

      public static void drawClip(Graphics g, int x, int y, Image image,

  

     int clipX, int clipY, int clipWidth, int clipHeight, int anchor) {

  

     int[] old = { g.getClipX(), g.getClipY(), g.getClipWidth(),

  

    g.getClipHeight() }; //存储原来的初始Clip大小和坐标

  

  

  

     int offsetX = 0, offsetY = 0;

  

     switch (anchor) {

  

     // 对各种的anchor的处理就是对Graphics.TOP|Graphics.LEFT的相对偏移

  

     // 取各种情况下的相对于Graphics.TOP|Graphics.LEFT的X,Y偏移,最后

  

     // 以Graphics.TOP|Graphics.LEFT的anchor画出图形

  

     case Graphics.HCENTER | Graphics.TOP:

  

     offsetX = clipWidth / 2;

  

     break;

  

     case Graphics.RIGHT | Graphics.TOP:

  

     offsetX = clipWidth;

  

     break;

  

     case Graphics.LEFT | Graphics.VCENTER:

  

     offsetY = clipHeight / 2;

  

     break;

  

     case Graphics.HCENTER | Graphics.VCENTER:

  

     offsetX= clipWidth /2;

  

     offsetY = clipHeight / 2;

  

     break;

  

     case Graphics.RIGHT | Graphics.VCENTER:

  

     offsetX = clipWidth;

  

     offsetY = clipHeight /2;

  

     break;

  

     case Graphics.LEFT | Graphics.BOTTOM:

  

     offsetY = clipHeight;

  

     break;

  

     case Graphics.HCENTER | Graphics.BOTTOM:

  

     offsetX = clipWidth / 2;

  

     offsetY = clipHeight;

  

     break;

  

     case Graphics.RIGHT | Graphics.BOTTOM:

  

     offsetX = clipWidth;

  

     offsetY = clipHeight;

  

     break;

  

     }

  

     g.setClip(x - offsetX, y - offsetY, clipWidth, clipHeight);

  

     g.drawImage(image, x - clipX - offsetX, y - clipY - offsetY,

  

    Graphics.TOP | Graphics.LEFT);

  

     g.setClip(old[0], old[1], old[2], old[3]); //画完后恢复CLIP大小位置

  

      }

  

  

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8225414/viewspace-951591/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8225414/viewspace-951591/

你可能感兴趣的文章
亚马逊移除订单_如何存档和更好地管理您的亚马逊订单
查看>>
apple pay 技术_如何在Apple Watch上设置和使用Apple Pay
查看>>
zimbra web 版本_如何获得Zimbra的版本?
查看>>
如何在Python中将纪元时间戳转换为人类可读的日期格式?
查看>>
gdb32和gdb_GDB备忘单
查看>>
n字节对齐 代码_大但正确对齐和优化的代码比每指令/操作码打包的字节少的代码快...
查看>>
火狐 旧版sync同步服务_如何设置Firefox Sync?
查看>>
python的smiley_SmIley面对iPhone
查看>>
电脑备份iphone_如何在Linux上备份iPhone?
查看>>
latex在编译公式_如何在Linux上编译Latex
查看>>
同步主目录
查看>>
hadoop单机映射_如何在命令行中设置Hadoop的映射器和缩减器的数量?
查看>>
安装fedora在u盘_如何在Fedora Linux上安装Scala
查看>>
如何使用ffmpeg将flv转换为mp4?
查看>>
ocaml_如何使用OCaml作为脚本语言?
查看>>
fedora下使用deb_如何在Fedora上安装.deb软件包?
查看>>
刘昕 hkust_在Linux上配置HKUST的sMobileNet
查看>>
win api发送键盘消息_使用Win32 API将消息发送到其他Windows
查看>>
Python“ for”循环(定迭代)
查看>>
软件测试应届生没有项目经历_为什么有些软件项目网站糟透了,而另一些却没有
查看>>