tools.java
来自「Sony Ericsson手机上的Facebook客户端全套代码」· Java 代码 · 共 683 行 · 第 1/2 页
JAVA
683 行
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: Tools.java
package se.southend.drops.tools;
import java.io.PrintStream;
import java.util.Random;
import java.util.Vector;
import javax.microedition.lcdui.*;
import se.southend.drops.gui.TextPart;
import se.southend.drops.gui.TextStyle;
// Referenced classes of package se.southend.drops.tools:
// ArrayList
public class Tools
{
public Tools()
{
}
public static Random getRandom()
{
if(random == null)
random = new Random();
return random;
}
public static Image loadImage(String filename, Image dest)
{
return dest != null ? dest : loadImage(filename);
}
public static Image loadImage(String filename)
{
if(filename == null)
break MISSING_BLOCK_LABEL_42;
Image image = Image.createImage(filename);
return image;
Exception e;
e;
System.out.println("Warning: Image not found '" + filename + "'");
return null;
}
public static final void drawString(Graphics g, String str, int x, int y, int anchor, int fColor, int oColor)
{
g.setColor(oColor);
g.drawString(str, x - 1, y - 1, anchor);
g.drawString(str, x + 1, y - 1, anchor);
g.drawString(str, x - 1, y, anchor);
g.drawString(str, x + 1, y, anchor);
g.drawString(str, x - 1, y + 1, anchor);
g.drawString(str, x + 1, y + 1, anchor);
g.setColor(fColor);
g.drawString(str, x, y, anchor);
}
public static final void sleep(long millis)
{
try
{
Thread.sleep(millis);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
public static final void printStackTrace()
{
try
{
throw new Exception("Print stack trace");
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static final long getUsedMem()
{
System.gc();
return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
}
public static final long getFreeMem()
{
System.gc();
return Runtime.getRuntime().freeMemory();
}
public static final long getTotalMem()
{
return Runtime.getRuntime().totalMemory();
}
public static int getFontSize(int pixelHeight)
{
if(mediumHeight == 0)
{
int sizes[] = {
8, 0
};
String fontString = "L\324gh";
for(int i = 0; i < sizes.length; i++)
{
Font font = Font.getFont(64, 0, sizes[i]);
Image img = Image.createImage(font.stringWidth(fontString), font.getHeight());
Graphics g = img.getGraphics();
g.setFont(font);
g.setColor(0);
g.drawString(fontString, 0, 0, 20);
int width = img.getWidth();
int height = img.getHeight();
int rgb[] = new int[width * height];
img.getRGB(rgb, 0, width, 0, 0, width, height);
int top = -1;
int bottom = -1;
for(int y = 0; y < height && (top == -1 || bottom == -1); y++)
{
for(int x = 0; x < width; x++)
{
if(top == -1 && rgb[x + y * width] != -1)
top = y;
if(bottom == -1 && rgb[x + (height - y - 1) * width] != -1)
bottom = height - y;
}
}
if(i == 0)
smallHeight = bottom - top;
if(i == 1)
mediumHeight = bottom - top;
}
}
if(pixelHeight <= smallHeight)
return 8;
return pixelHeight > mediumHeight ? 16 : 0;
}
public static String getProtocol(String url)
{
int next = url.indexOf("://");
next = next < 0 ? 0 : (next += 3);
return url.substring(0, next);
}
public static String getHost(String url)
{
int next = url.indexOf("://");
next = next < 0 ? 0 : (next += 3);
return url.substring(next, url.indexOf(47, next) + 1);
}
public static String getPath(String url)
{
int next = url.indexOf("://");
next = next < 0 ? 0 : (next += 3);
return url.substring(url.indexOf(47, next) + 1, url.lastIndexOf(47) + 1);
}
public static String getFilename(String url)
{
return url.substring(url.lastIndexOf(47) + 1);
}
public static String padString(String str, int nbrCharacters, char padding)
{
if(nbrCharacters > str.length())
{
StringBuffer buffer = new StringBuffer(nbrCharacters);
for(int i = nbrCharacters - str.length(); i > 0; i--)
buffer.append(padding);
for(int i = 0; i < str.length(); i++)
buffer.append(str.charAt(i));
return buffer.toString();
} else
{
return str;
}
}
public static String[] parseStrings(String str)
{
return parseStrings(str, ',');
}
public static String[] parseStrings(String str, char delimiter)
{
if(str == null)
return null;
int index = 0;
int next = str.indexOf(delimiter);
ArrayList strings = new ArrayList();
for(; next >= 0; next = str.indexOf(delimiter, index))
{
strings.add(str.substring(index, next).trim());
index = next + 1;
}
strings.add(str.substring(index).trim());
String result[] = new String[strings.size()];
strings.toArray(result, 0);
return result;
}
public static int[] parseInts(String str)
{
return parseInts(str, ',');
}
public static int[] parseInts(String str, char delimiter)
{
String strings[] = parseStrings(str);
if(strings == null)
return null;
int ints[] = new int[strings.length];
for(int i = 0; i < strings.length; i++)
try
{
ints[i] = Integer.parseInt(strings[i]);
}
catch(Exception e)
{
ints[i] = 0;
}
return ints;
}
public static String format(String quote)
{
int bufpos = 0;
int length = quote.length();
char buf[] = new char[length];
for(int pos = 0; pos < length; pos++)
{
int test = quote.charAt(pos);
if(test == 92 && pos < length - 1)
{
int temp = quote.charAt(++pos);
switch(temp)
{
case 97: // 'a'
temp = 7;
break;
case 98: // 'b'
temp = 8;
break;
case 102: // 'f'
temp = 12;
break;
case 110: // 'n'
temp = 10;
break;
case 114: // 'r'
temp = 13;
break;
case 116: // 't'
temp = 9;
break;
case 118: // 'v'
temp = 11;
break;
case 99: // 'c'
case 100: // 'd'
case 101: // 'e'
case 103: // 'g'
case 104: // 'h'
case 105: // 'i'
case 106: // 'j'
case 107: // 'k'
case 108: // 'l'
case 109: // 'm'
case 111: // 'o'
case 112: // 'p'
case 113: // 'q'
case 115: // 's'
case 117: // 'u'
default:
buf[bufpos++] = (char)test;
break;
}
buf[bufpos++] = (char)temp;
} else
{
buf[bufpos++] = (char)test;
}
}
return String.valueOf(buf, 0, bufpos);
}
public static int firstIndexOfAnyChar(String str, String chars, int startOffset)
{
for(int i = startOffset; i < str.length(); i++)
if(chars.indexOf(str.charAt(i)) >= 0)
return i;
return -1;
}
private static void parseFontParam(String src, int startOffset, int stopOffset, TextStyle style)
{
int pos = src.indexOf(" color=\"#", startOffset);
if(pos >= startOffset && pos + 16 <= stopOffset)
{
pos += 9;
int red = Integer.parseInt(src.substring(pos, pos + 2), 16);
pos += 2;
int green = Integer.parseInt(src.substring(pos, pos + 2), 16);
pos += 2;
int blue = Integer.parseInt(src.substring(pos, pos + 2), 16);
style.color = red << 16 | green << 8 | blue;
}
}
private static String parseLinkParam(String src, int startOffset, int stopOffset)
{
int linkPos = src.indexOf("href=\"", startOffset);
if(linkPos >= startOffset && linkPos + 7 <= stopOffset)
{
int endPos = src.indexOf(34, linkPos + 6);
if(endPos > linkPos && endPos <= stopOffset)
return src.substring(linkPos + 6, endPos);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?