/**
* 剪切图片,返回剪切后的bitmap对象
*
* @return
*/
public Bitmap crop(int outputWidth, int outputHeight) {
int width = getWidth();
int height = getHeight();
int horizontalPadding = (width - mCropWidth) / 2;
int verticalPadding = (height - mCropHeight) / 2;
// TODO may cause OutOfMemory exception
Bitmap bitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
// bitmap.setHasAlpha(true);
Canvas canvas = new Canvas(bitmap);
canvas.setDrawFilter(new PaintFlagsDrawFilter(0,
Paint.FILTER_BITMAP_FLAG | Paint.ANTI_ALIAS_FLAG));
Path clipPath = new Path();
RectF rect = new RectF(horizontalPadding, verticalPadding, width
- horizontalPadding, height - verticalPadding);
switch (mCropShape) {
case CropShape.SHAPE_RECTANGLE:
clipPath.addRect(rect, Direction.CW);
break;
case CropShape.SHAPE_OVAL:
clipPath.addOval(rect, Direction.CW);
break;
}
canvas.clipPath(clipPath);
draw(canvas);
Bitmap croppedBitmap = Bitmap.createBitmap(bitmap, horizontalPadding,
verticalPadding, mCropWidth, mCropHeight);
return Bitmap.createScaledBitmap(croppedBitmap, outputWidth, outputHeight,
false);
}
ZoomCropImageView.java 文件源码
java
阅读 21
收藏 0
点赞 0
评论 0
项目:ZoomCropImage
作者:
评论列表
文章目录