- 浏览: 5819799 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
有用的J2ME功能函数
swap(int a, int b) { a = a ^ b; b = a ^ b; a = a ^ b; } /** * 求平方根 * @param value 定义域 * @return 值域 */ final public static int sqrt(int value) { int sqrt = 0; for (int k = 0x100000; k != 0; k >>= 2) { int tmp = sqrt + k; sqrt >>= 1; if (tmp <= value) { value -= tmp; sqrt += k; } } return sqrt; } //原理:先按行缩放,再按列缩放 //测试结果,在50MS以下 package com.gts.Util; import javax.microedition.lcdui.*; public class GImageUtil { /** * 本次缩放操作的所用时间 * 以毫秒的形式 */ public static long timecost = 0; /** * 快速缩放一个图片 * 得到一个不带透明色的缩放後的图片 * 一般耗时在 50ms 以下 * @param imgSrc - 原始图片 * @param scale100 - 缩放比率,以百分比的形式,比如输入200,表示放大到原始的200%;输入75,表示缩小到原始的 75% * @return */ public static final Image fastScale(Image imgSrc, int scale100) { int width = imgSrc.getWidth(); int height = imgSrc.getHeight(); width *= scale100; width /= 100; height *= scale100; height /= 100; // return scale(imgSrc, width, height); return fastScale(imgSrc, width, height); } /** * 快速缩放 * @param imgSrc - 原始图片 * @param w_new - 新宽度 * @param h_new - 新高度 * @return - 缩放后的图片 */ public static final Image fastScale(Image src, int dstW, int dstH) { long time = System.currentTimeMillis(); int srcW = src.getWidth(); int srcH = src.getHeight(); Image tmp = Image.createImage(dstW, srcH); Graphics g = tmp.getGraphics(); int delta = (srcW << 16) / dstW; int pos = delta >> 1; for (int x = 0; x < dstW; x++) { g.setClip(x, 0, 1, srcH); g.drawImage(src, x - (pos >> 16), 0, Graphics.LEFT | Graphics.TOP); pos += delta; } Image dst = Image.createImage(dstW, dstH); g = dst.getGraphics(); delta = (srcH << 16) / dstH; pos = delta >> 1; for (int y = 0; y < dstH; y++) { g.setClip(0, y, dstW, 1); g.drawImage(tmp, 0, y - (pos >> 16), Graphics.LEFT | Graphics.TOP); pos += delta; } // return dst; tmp = null; timecost = System.currentTimeMillis() - time; return dst; } } /**轮询次数计数器*/ static int sort_counter = 0; /**交换次数计数器*/ static int swap_counter = 0; /** * 冒泡排序法 * 从小到大 * @param data - 原始数据 * @param smallToBig - true if 从小到大; false if 从大到小 */ public static final void bubbleSort(int[] data, boolean smallToBig) { int high = data.length; int sort_start = sort_counter; int swap_start = swap_counter; for (int i = 0; i < high; i++) { for (int j = i; j < high; j++) { ++sort_counter; if (smallToBig) { if (data[i] > data[j]) { swapData(data, i, j); } } else { if (data[i] < data[j]) { swapData(data, i, j); } } } } Util.debug("bubbleSort::Sort_Counter::" + (sort_counter - sort_start) + "::swap_counter::" + (swap_counter - swap_start)); } /** * Quick sort 来排序一个数组 * 从小到大 * @param data - 要排序的数组 * @param smallToBig - true if 从小到大; false if 从大到小 */ public static final void quickSort(int[] data, boolean smallToBig) { int low = 0; int high = data.length - 1; int sort_start = sort_counter; int swap_start = swap_counter; quickSort(data, low, high, smallToBig); Util.debug("quickSort::Sort_Counter::" + (sort_counter - sort_start) + "::swap_counter::" + (swap_counter - swap_start)); } /** * 快速排序 * @param data - 原始数组 * @param low - * @param high */ private static final void quickSort(int[] data, int low, int high, boolean smallToBig) { if (low < high) { int pivot = partition(data, low, high, smallToBig); quickSort(data, low, pivot - 1, smallToBig); quickSort(data, pivot + 1, high, smallToBig); } } /** * 分割点 * @param data * @param low * @param high * @return */ private static final int partition(int[] data, int low, int high, boolean smallToBig) { //当前位置为第一个元素所在位置 int pos = low; //采用第一个元素位轴 int pivot = data[pos]; for (int i = low + 1; i <= high; i++) { ++sort_counter; if (smallToBig) { //从小到大 if (data[i] < pivot) { ++pos; swapData(data, pos, i); } } else { //从大到小 if (data[i] > pivot) { ++pos; swapData(data, pos, i); } } } swapData(data, low, pos); return pos; } /** * 交换数据 * @param data - 原始数组 * @param i * @param j */ private static final void swapData(int[] data, int i, int j) { int tmp = data[i]; data[i] = data[j]; data[j] = tmp; ++swap_counter; } /** * Build a 8-byte array from a long. No check is performed on the * array length. * * @param n The number to convert. * @param b The array to fill. * @return A byte[]. */ public static byte[] toBytes(long n, byte[] b) { b[7] = (byte) (n); n >>>= 8; b[6] = (byte) (n); n >>>= 8; b[5] = (byte) (n); n >>>= 8; b[4] = (byte) (n); n >>>= 8; b[3] = (byte) (n); n >>>= 8; b[2] = (byte) (n); n >>>= 8; b[1] = (byte) (n); n >>>= 8; b[0] = (byte) (n); return b; } /** * Build a long from first 8 bytes of the array. * * @param b The byte[] to convert. * @return A long. */ public static long toLong(byte[] b) { return ((((long) b[7]) & 0xFF) + ((((long) b[6]) & 0xFF) << 8) + ((((long) b[5]) & 0xFF) << 16) + ((((long) b[4]) & 0xFF) << 24) + ((((long) b[3]) & 0xFF) << 32) + ((((long) b[2]) & 0xFF) << 40) + ((((long) b[1]) & 0xFF) << 48) + ((((long) b[0]) & 0xFF) << 56)); }
发表评论
-
3个RPG练习,最后一个是卡马克卷轴
2010-12-11 18:02 2361import javax.microedition.lcd ... -
自己早期做的一个基于j2me的飞行射击类游戏
2010-12-07 20:23 2130早期的代码,MVC思想 -
自己早期做的一个基于j2me的魔塔
2010-12-07 20:13 2103上面一个不完整,但代码好(MVC),但没抽出类; 下面一个比 ... -
j2me中的A*算法
2010-12-02 14:08 2065import javax.microedition.mid ... -
j2me代理连接返回码总是400的问题
2010-09-21 16:24 2769400是因为错误的语法导致服务器无法理解请求信息。 Con ... -
当显示内容过多时的滚屏类Container.java
2010-09-16 11:32 2169很多时候,由于手机屏幕太小,一下子显示不了那么多内容,这个时候 ... -
j2me读取中文的配置文件
2010-09-14 20:25 2167还可以参考这篇文章: http://gundumw100.it ... -
使用jsr172解析xml
2010-09-14 10:40 1963基类: import java.io.ByteArrayI ... -
面向对象的RMS操作
2010-09-14 10:29 1715将需要保存的数据集中起来形成一个model类,并且要实现序列化 ... -
Java版数独算法实现
2010-09-10 16:32 16361数独的历史: 数独前身为“九宫格”,最早起源于中国。数千 ... -
使用KXML解析xml数据
2010-09-10 13:05 9335最近做项目,服务器传过来的都是Xml格式的数据,需要解析xml ... -
类似小球列表的选择控件(9宫格)
2010-08-27 15:50 1763import javax.microedition.lcd ... -
j2me工具类:TextUtil.java
2010-08-11 21:24 1711import java.util.Vector; i ... -
j2me工具类:Database.java
2010-08-11 21:18 2023/** * <p>Title: & ... -
j2me工具类:ReadFromFile.java
2010-08-11 21:15 4341import java.io.*; import jav ... -
j2me竖向滚动菜单的基本做法
2010-08-11 16:58 2033public class AppCanvas extend ... -
j2me工具类:声音播放类SoundUtil
2010-06-04 23:21 2135用法: 将需要播放的音乐都罗列在name,type数组中,需要 ... -
j2me工具类:PalettedImage调色板类
2010-06-04 22:57 1808该方法网上可以找到,我添加了一个重载函数: public Im ... -
地图编辑器Mappy下载
2010-05-25 22:30 3331简单的手机游戏地图编辑器,共享之。。。 eclipseme下 ... -
将Image对像转换为png格式的byte数组
2010-04-15 12:48 2626原理上说 1 获取Image 的ARGB数据 2将ARGB ...
相关推荐
贪吃蛇游戏是一个经典的J2ME编程练习。它包括蛇的移动逻辑、食物生成、边界处理、碰撞检测等部分。蛇的身体由多个单元格组成,每个单元格的位置需要通过数组或链表来维护。游戏循环会检查蛇头与食物的位置关系,...
- **KVM(K Virtual Machine)**:J2ME的虚拟机,针对小内存设备进行了优化。 2. **J2ME开发环境** - **NetBeans或Eclipse**:常用的J2ME开发IDE,提供了图形化的项目管理、代码编辑和模拟器功能。 - **WTK...
【标题】"郭克华J2me视频教学源代码.rar" 涉及的主要知识点是Java ME(J2ME)的编程技术,这是一套针对移动设备和嵌入式系统的Java开发平台。J2ME由Java Micro Edition Profile(配置)和Java Micro Edition ...
这个压缩包文件包含了与J2ME相关的课件,可能是教学材料、示例代码或项目案例,旨在帮助学习者理解和掌握J2ME技术。 J2ME的核心组成部分是Java ME规范,包括几个配置和框架。其中最常见的是Connected Limited ...
#### J2ME移动开发实战教学系列视频教程 - **专题地址**:[http://down.51cto.com/zt/54](http://down.51cto.com/zt/54) - **下载量**:600次 - **好评率**:97.00% **知识点概述**: - 该系列视频教程主要面向初学...
标题中的“J2ME做的个人电话薄”表明这是一个使用Java Micro Edition (J2ME) 开发的简单通讯录应用。J2ME是Java平台的一个版本,主要用于嵌入式设备和移动设备,如早期的智能手机和平板电脑。这个项目可能是为了教学...
其中的"J2ME演示文稿1.ppt"可能是一个PowerPoint演示文件,详细阐述了J2ME的相关主题,可能是教学课件或者考试复习材料。PPT可能涵盖以下内容: 1. **J2ME架构**:包括KVM(Java虚拟机)和配置/ profiles(比如MIDP...
压缩包中的“习题答案”很可能包含了针对J2ME基础概念、MIDP API使用、应用开发流程等方面的练习题及其解答,是学习者自我检测和提升的重要参考资料。 **八、教学与实验** 作为"实验"和"课件"的标签,这份资料可能...
结合标签“查单词”,我们可以推测这个应用专注于词汇查询,而不是完整的语言学习解决方案,例如对话练习或语法教学。 至于压缩包中的“Translate”文件,可能是源代码、资源文件或者应用的可执行文件。如果是源...
五子棋简单易学,但策略深奥,因此非常适合用作教学或编程练习。 在这个【含源代码】的项目中,开发者使用J2ME技术编写了一个五子棋应用。通过分析源代码,我们可以学习到以下知识点: 1. **图形用户界面(GUI)**:...
- 实践应用:通过实际项目练习,熟悉工具的使用,掌握优化技巧。 5. 应用场景: - 功能手机应用开发:对于仍然使用J2ME平台的设备,Pro J2ME Polish是增强用户体验和功能的理想选择。 - 教育与研究:作为教学...
在本PPT系列中,它聚焦于J2ME环境下的手机游戏开发,为游戏学院的学生提供内部教学材料。这些PPT文件涵盖了一系列关键主题,旨在帮助学习者掌握创建引人入胜的手机游戏所需的技能。 **主要知识点** 1. **低级用户...
这两个SWF(ShockWave Flash)文件可能是教学视频片段,用于演示J2ME开发过程中的具体步骤。SWF格式通常用于在线播放交互式多媒体内容,比如教程中的动画或演示。14-4和14-3的编号可能与教程章节相对应,先学习14-3...
Word文档可能包含问题的详细说明、步骤指南或者理论知识,而PowerPoint演示文稿可能是教学材料,用于讲解J2ME的基础知识、概念或示例。 在压缩包子文件的文件名称列表中,我们看到两个文件:"J2ME演示文稿.ppt"和...
本教程主要围绕“Java手机游戏开发”展开,适合初学者进行深入学习。Java作为一种跨平台的语言,被广泛应用于移动设备,...记得在学习过程中,不断练习和调试代码,理论结合实践,才能真正成为Java手机游戏开发的大师。
08-4.swf和08-5.swf这两个文件可能是本教程的演示或教学视频,它们可能涵盖了以下主题: - 如何在J2ME中定义和抛出自定义异常。 - 使用try-catch-finally结构处理异常的基本步骤。 - 如何利用Exception类和其子类,...