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) == '\n') {
				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;
}

你可能感兴趣的:(游戏,编程,android)