⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myutil.java

📁 实现.多个.mid声音的播放,和图片的移动.可以手动控制图片的移动方向
💻 JAVA
字号:
import java.io.IOException;
import java.util.Vector;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class MyUtil {
	
	/**
	 * 绘制分割图片
	 * @param width		全屏宽度
	 * @param height	全屏高度
	 * @param g 		画笔
	 * @param img 		要画的图片
	 * @param posX		图片显示部分的X位置
	 * @param posY		图片显示部分的Y位置
	 * @param clipX 	显示区域起点即左上角相对于图片的X位置
	 * @param clipX 	显示区域起点即左上角相对于图片的Y位置
	 * @param clipWidth		显示区域宽度
	 * @param clipHeight		显示区域高度
	 * @param anchor	锚点
	 */
	public static void drawClipImage(int width,int height,Graphics g, Image img, int posX, int posY, int clipX, int clipY, int clipWidth, int clipHeight, int anchor){
		g.setClip( posX, posY, clipWidth, clipHeight);						//设置图片上的动作有效作用区域
		g.drawImage(img, posX - clipX, posY - clipY, anchor);	//绘制图片的有效显示范围
		g.setClip(0, 0, width, height);							//把动作有效作用区域重新设为全屏
	}
	
	/**
	 * 读取图片资源
	 */
	public static Image getImage(String path){
		Image img = null;
		try {
			img = Image.createImage(path);
		} catch (IOException e) {
			System.out.println("图片加载失败 : " + path);			//如果加载失败,可以定位到那一张图片
			e.printStackTrace();
		}
		return img;
	}
	
	/**
	 * 绘制左右翻转180度图片
	 * @param g 指定画笔
	 * @param image 
	 * @X 目标x
	 * @Y 目标y
	 * @clipX 图片裁剪区域x
	 * @clipY 图片裁剪区域y
	 * @clipWidth 图片裁剪区域宽度
	 * @clipHeight 图片裁剪区域高度
	 */
	public static void turnMirror(Graphics g,Image image,int posX,int posY,int clipX,int clipY,int clipWidth,int clipHeight){
	    
	    //像素要一格一格的画
	    for(int i = 0;i < clipWidth;i ++){
	        g.setClip(posX + i,posY,1,clipHeight);
//	        drawClipImage(240,320,g, image, posX + clipWidth - i - 1, posY, clipX + i, clipY, 1, clipHeight, 0);
	        g.drawImage(image, posX + i - clipWidth + i - clipX,posY - clipY, 0);

	    }
	}
	
	/**
	* 分割字符串,原理:检测字符串中的分割标识符,然后取子串
	* @param original 需要分割的原始字符串
	* @paran sign 分割符
	* @return 分割后生成的字符串数组
	*/ 
	public static String[] stringSplit(String original,String sign)
	{	     
	    String[] str = null;
	    String temp = "";
	    Vector strVector = new Vector();
	    int signIndex = myIndexOf(original,sign);
	    if(signIndex == -1){
	    	return null;
	    }
	    while(signIndex != -1){
	    	if(signIndex == 0){			//如果子串在开头位置,则除去开头子串后重新截取
		    	original = original.substring(sign.length());
		    	signIndex = myIndexOf(original,sign);
		    	continue;
		    }
	    	temp = original.substring(0,signIndex);
	    	strVector.addElement(temp);
	    	original = original.substring(signIndex + sign.length());
	    	signIndex = myIndexOf(original,sign);
	    }
	    strVector.addElement(original);
	    str = new String[strVector.size()];			//数组必须初始化,不能只声明
	    for(int i = 0;i < strVector.size();i ++){
	    	str[i] = (String)strVector.elementAt(i);
	    }
	    return str;
	} 
	
	
	/**
	 * 判断某字符串中是否包含另一子字符串,返回子字符串的首字母在母字符串中第一次出现的位置,如不包含返回-1
	 * @author Administrator
	 */
	public static int myIndexOf(String original,String sign){
		if(original.length() < sign.length()){
			return -1;
		}
		String firstOfSign = sign.charAt(0) + "";
		int index = original.indexOf(firstOfSign);
		//子串首字母出现的位置加上子传的长度不能超过父串长度
		while(index + sign.length() < original.length() && index != -1){
			if(sign.equals(original.substring(index,index + sign.length()))){
				return index;	//第一次出现子串时就返回
			}
			index = original.indexOf(firstOfSign,index + 1);
		}
		return -1;
	}
	
	/**
	 * 一行代码实现字符串倒转
	 * @param s
	 * @return
	 */
	public static String reverseString(String s){
		return s.length() > 0 ? reverseString(s.substring(1)) + s.charAt(0) : "";
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -