裁剪圆形图片
2016-04-20 09:47
369 查看
/** * 显示圆形图片 Glide * @author ad * */ public class GlideCircleTransform extends BitmapTransformation { public GlideCircleTransform(Context context) { super(context); } protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) { return circleCrop(pool, toTransform); } private static Bitmap circleCrop(BitmapPool pool, Bitmap source) { if (source == null) return null; int size = Math.min(source.getWidth(), source.getHeight()); int x = (source.getWidth() - size) / 2; int y = (source.getHeight() - size) / 2; Bitmap squared = Bitmap.createBitmap(source, x, y, size, size); Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888); if (result == null) { result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); } Canvas canvas = new Canvas(result); Paint paint = new Paint(); paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP)); paint.setAntiAlias(true); float r = size / 2f; canvas.drawCircle(r, r, r, paint); return result; } @Override public String getId() { return getClass().getName(); } }
使用Glide加载
if (outputImageIcon.exists()) { String imgStr = Environment.getExternalStorageDirectory() + "/Tangcan/tempImageIcon.jpg"; Glide.with(getMyActivity()).load(imgStr).centerCrop().transform(new GlideCircleTransform(getMyActivity())).into(mIcon); // mIcon.setImageBitmap(GetCircleImage.toRoundBitmap(BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/Tangcan/tempImageIcon.jpg"))); }
相关文章推荐
- Exchange 2016集成ADRMS系列-9:域内使用自定义的RMS模板
- WEX5常用组件介绍
- Spring Task定时任务
- 设置UISearchBar输入字体颜色和默认字体颜色
- jdk版本不一致问题
- 【转载】Apache日志配置参数详细说明
- 在linux中安装adb和fastboot工具
- 团队作业(四)
- Java实现linux的“tail -f”命令
- latex公式导入到word中
- 关于Scala的implicit(隐式转换)的思考
- Android Studio 断点调试和高级调试
- GPRS 对物流车辆管理
- Lua从入门到放弃--元表(操作符)
- 如何快速的制作一张分组报表及扩展
- ha456.jar打开dump文件报Unsupported major.minor version 51.0异常
- java学习之contentprovider
- 二叉树的创建--(2)运算符重载<<、>>以及CreateBinaryTree、Traverse、PrintBTree函数
- mysql之日期函数
- RPM 常用命令