Android提高 - 图片一些常用处理方法

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、Android 图片透明度处理代码

/**
 * 图片透明度处理
 * 
 * @param sourceImg
 *            原始图片
 * @param number
 *            透明度
 * @return
 */
public static Bitmap setAlpha(Bitmap sourceImg, int number) {
	int[] argb = new int[sourceImg.getWidth() * sourceImg.getHeight()];
	sourceImg.getPixels(argb, 0, sourceImg.getWidth(), 0, 0,
			sourceImg.getWidth(), sourceImg.getHeight());// 获得图片的ARGB值
	number = number * 255 / 100;
	for (int i = 0; i < argb.length; i++) {
		argb[i] = (number << 24) | (argb[i] & 0x00FFFFFF);// 修改最高2位的值
	}
	sourceImg = Bitmap.createBitmap(argb, sourceImg.getWidth(),
			sourceImg.getHeight(), Config.ARGB_8888);
	return sourceImg;
}

6、图片翻转

/**
 * 图片翻转
 * 
 * @param context
 * @param imageId
 *            图片id
 * @return
 */
public static Bitmap setRotate(Context context, int imageId) {
	Resources res = context.getResources();
	Bitmap img = BitmapFactory.decodeResource(res, imageId);
	Matrix matrix = new Matrix();
	matrix.postRotate(90); /* 翻转90度 */
	int width = img.getWidth();
	int height = img.getHeight();
	Bitmap result = Bitmap.createBitmap(img, 0, 0, width, height, matrix,
			true);
	img.recycle();
	return result;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值