Android对于图片处理有很多种,现在给大家介绍几种常用的图片处理方法,具体的代码如下:
//旋转图片
private static Bitmap rotateBitmap(Bitmap b, int degrees) {
if (degrees != 0 && b != null) {
Matrix m = new Matrix();
m.setRotate(degrees,
(float) b.getWidth() / 2, (float) b.getHeight() / 2);
try {
Bitmap b2 = Bitmap.createBitmap(
b, 0, 0, b.getWidth(), b.getHeight(), m, true);
if (b != b2) {
b.recycle(); //释放资源
b = b2;
}
} catch (OutOfMemoryError ex) {
return b; //返回原始图片
}
}
return b;
}
//背景渐变
private Bitmap drawLineGradient(Bitmap bm){
Canvas canvas = new Canvas(bm);
Paint paint = new Paint();
LinearGradient lg=new LinearGradient(0,0,bm.getWidth(), bm.getHeight(),
Color.RED,Color.BLUE,
TileMode.REPEAT);
paint.setShader(lg);
canvas.drawRect(0, 0, bm.getWidth(), bm.getHeight(), paint);
return bm;
}
//获得圆角图片的方法
private Bitmap getRoundedCornerBitmap(Bitmap bitmap,float roundPx){
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap
.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
更多效果请参见: http://www.lrguan.com/articles/20130708.htm