Android图片处理的的一些方法 - ORIETech

文章分类:移动开发

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.图片平均分割方法,将大图平均分割为NN列,方便用户使用

/***
*
图片分割
*
* @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 = (number << 24) | (argb & 0×00FFFFFF);//
修改最高2位的值
}
sourceImg = Bitmap.createBitmap(argb, sourceImg.getWidth(), sourceImg.getHeight(), Config.ARGB_8888);

 

return sourceImg;
}

6.图片翻转

Resources res = this.getContext().getResources();
img = BitmapFactory.decodeResource(res, R.drawable.slogo);
Matrix matrix = new Matrix();
matrix.postRotate(90);        /*翻转90*/
int width = img.getWidth();
int height = img.getHeight();
r_img = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值