📄 myutil.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 + -