这篇文章主要为大家展示了“J2ME中clip窗口可使用anchor怎么实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“J2ME中clip窗口可使用anchor怎么实现”这篇文章吧。
/** * 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大小位置 }
以上是“J2ME中clip窗口可使用anchor怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。