android常用的工具类——将图形变成圆形
16lz
2021-01-25
本文主要讲如何将项目中的图片设置成圆形来显示,直接用封装好的如下方法即可
public static Bitmap getRoundBitmap(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); float roundPx; float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom; if (width <= height) { roundPx = width / 2; top = 0; bottom = width; left = 0; right = width; height = width; dst_left = 0; dst_top = 0; dst_right = width; dst_bottom = width; } else { roundPx = height / 2; float clip = (width - height) / 2; left = clip; right = width - clip; top = 0; bottom = height; width = height; dst_left = 0; dst_top = 0; dst_right = height; dst_bottom = height;} Bitmap output = Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect src = new Rect((int)left, (int)top, (int)right, (int)bottom); final Rect dst = new Rect((int)dst_left, (int)dst_top, (int)dst_right, (int)dst_bottom); final RectF rectF = new RectF(dst); 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, src, dst, paint); return output; }
接下来是实战演示: 我把此函数封装在一个ImageUtil的工具类中,
iv_icon = (ImageView) findViewById(R.id.iv_icon);InputStream is = getResources().openRawResource(R.drawable.profile); Bitmap bitmap = ImageUtil.getRoundBitmap(BitmapFactory.decodeStream(is));iv_icon.setImageBitmap(bitmap);
更多相关文章
- binder机制底层驱动浅析
- android sqlite用法
- [置顶] Android(安卓)NDK中结合汇编分析Crash行为
- Android(安卓)Binder机制(3) 本地服务注册过程
- Android游戏框架AndEngine使用入门
- Android将InputStream转换为String和byte[]
- Android下AlarmManager完整调用流程
- Android(安卓)Audio代码分析20 - queryEffects函数
- [Android] Smali基本语法