Androidプログラミングにおける些細な知識点のまとめ(3)
1.画像のロード方法、ユーザーが画像をロードしやすい
2.画像の平均分割方法、大きい図を平均してN行のN列に分割して、ユーザーの使用を便利にします
3.画像のズーム、現在の画像のズーム処理
4.枠のある文字を描くのは、一般的にゲームの中で文字の美化の役割を果たします.
5.画像分割の最も簡単な方法
6.文字列の行表示
/***
*
*
* @param context
* :
* @param bitAdress
* : , R drawable
* @return
*/
public final Bitmap CreatImage(Context context, int bitAdress) {
Bitmap bitmaptemp = null;
bitmaptemp = BitmapFactory.decodeResource(context.getResources(),
bitAdress);
return bitmaptemp;
}
2.画像の平均分割方法、大きい図を平均してN行のN列に分割して、ユーザーの使用を便利にします
/***
*
*
* @param g
* :
* @param paint
* :
* @param imgBit
* :
* @param x
* :X
* @param y
* :Y
* @param w
* :
* @param h
* :
* @param line
* :
* @param row
* :
*/
public final void cuteImage(Canvas g, Paint paint, Bitmap imgBit, int x,
int y, int w, int h, int line, int row) {
g.clipRect(x, y, x + w, h + y);
g.drawBitmap(imgBit, x - line * w, y - row * h, paint);
g.restore();
}
3.画像のズーム、現在の画像のズーム処理
/***
*
*
* @param bgimage
* :
* @param newWidth
* :
* @param newHeight
* :
* @return
*/
public Bitmap zoomImage(Bitmap bgimage, int newWidth, int newHeight) {
//
int width = bgimage.getWidth();
int height = bgimage.getHeight();
// matrix
Matrix matrix = new Matrix();
// ,
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
//
matrix.postScale(scaleWidth, scaleHeight);
Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, width, height,
matrix, true);
return bitmap;
}
4.枠のある文字を描くのは、一般的にゲームの中で文字の美化の役割を果たします.
/***
*
*
* @param strMsg
* :
* @param g
* :
* @param paint
* :
* @param setx
* ::X
* @param sety
* :Y
* @param fg
* :
* @param bg
* :
*/
public void drawText(String strMsg, Canvas g, Paint paint, int setx,
int sety, int fg, int bg) {
paint.setColor(bg);
g.drawText(strMsg, setx + 1, sety, paint);
g.drawText(strMsg, setx, sety - 1, paint);
g.drawText(strMsg, setx, sety + 1, paint);
g.drawText(strMsg, setx - 1, sety, paint);
paint.setColor(fg);
g.drawText(strMsg, setx, sety, paint);
g.restore();
}
5.画像分割の最も簡単な方法
public final Bitmap cuteImage(Bitmap _imgBit, int _startX, int width,
int _startY, int height) {
Bitmap tempMap = null;
tempMap = Bitmap.createBitmap(_imgBit, _startX, _startY, width, height);
return tempMap;
}
6.文字列の行表示
public String[] StringFormat(String text, int maxWidth, int fontSize) {
String[] result = null;
Vector<String> tempR = new Vector<String>();
int lines = 0;
int len = text.length();
int index0 = 0;
int index1 = 0;
boolean wrap;
while (true) {
int widthes = 0;
wrap = false;
for (index0 = index1; index1 < len; index1++) {
if (text.charAt(index1) == '
') {
index1++;
wrap = true;
break;
}
widthes = fontSize + widthes;
if (widthes > maxWidth) {
break;
}
}
lines++;
if (wrap) {
tempR.addElement(text.substring(index0, index1 - 1));
} else {
tempR.addElement(text.substring(index0, index1));
}
if (index1 >= len) {
break;
}
}
result = new String[lines];
tempR.copyInto(result);
return result;
}