Androidプログラミングにおける些細な知識点のまとめ(3)


1.画像のロード方法、ユーザーが画像をロードしやすい
/***
 *       
 * 
 * @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; }