public static Bitmap toRoundBitmap(Context context, String filename) { Bitmap bitmap = getBitmap(context, filename); 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; left = 0; bottom = width; 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.WHITE); paint.setStrokeWidth(4); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, src, dst, paint); //画白色圆圈 paint.reset(); paint.setColor(Color.WHITE); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(STROKE_WIDTH); paint.setAntiAlias(true); canvas.drawCircle(width / 2, width / 2, width / 2 - STROKE_WIDTH / 2, paint); return output; }
//从assets资源中获取图片 public static Bitmap getBitmap(Context context, String filename) { Bitmap image = null; AssetManager am = context.getResources().getAssets(); try { InputStream is = am.open(filename); image = BitmapFactory.decodeStream(is); is.close(); } catch (IOException e) { e.printStackTrace(); } return image; }
// Audience audience1 = new Audience();
// audience1.setLevels(27);
// audience1.setName("依然&代理");
// audience1.setColor("#B84C65");
// audience1.setBackgroudcolor("#E1B6E1");
// audience1.setXiaofei(new BigDecimal(10000));
// list1.add(audience1);
//
// Audience audience2 = new Audience();
// audience2.setLevels(26);
// audience2.setName("梦回千古等待");
// audience2.setColor("#BA5AC0");
// audience2.setBackgroudcolor("#E1B6E1");
// audience2.setXiaofei(new BigDecimal(95000));
// list1.add(audience2);
//
// Audience audience3 = new Audience();
// audience3.setLevels(21);
// audience3.setName("晶晶的小房间");
// audience3.setColor("#3F3236");
// audience3.setBackgroudcolor("#B79DAA");
// audience3.setXiaofei(new BigDecimal(5000));
// list1.add(audience3);
//
// Audience audience4 = new Audience();
// audience4.setLevels(16);
// audience4.setName("红日牵心姑");
// audience4.setColor("#3F3236");
// audience4.setBackgroudcolor("#B79DAA");
// audience4.setXiaofei(new BigDecimal(2500));
// list1.add(audience4);
//
// Audience audience5 = new Audience();
// audience5.setLevels(11);
// audience5.setName("和风天下");
// audience5.setColor("#3F3236");
// audience5.setBackgroudcolor("#B79DAA");
// audience5.setXiaofei(new BigDecimal(1000));
// list1.add(audience5);
//
// Audience audience6 = new Audience();
// audience6.setLevels(6);
// audience6.setName("嘚瑟的千年虫");
// audience6.setColor("#3F3236");
// audience6.setBackgroudcolor("#B79DAA");
// audience6.setXiaofei(new BigDecimal(923));
// list1.add(audience6);
//
// return list1;
// }
相关推荐
介绍两种使用 BitmapTransformation 来实现 Glide 加载圆形图片和圆角图片的方法。Glide 并不能直接支持 Round Pictures ,需要使用 BitmapTransformation 来进行处理。 二、网上的实现方式 这里介绍下网上常见的...
资源为博客的示例代码:http://blog.csdn.net/lmj623565791/article/details/24555655 有问题,请博客留言
代码为博客的实例代码:http://blog.csdn.net/lmj623565791/article/details/41967509 有问题请博客留言
安卓根据xfermode实现圆形,圆角图片的生成。代码亲测有效。
Android自定义圆形 圆角控件.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
代码为博客实例代码:http://blog.csdn.net/lmj623565791/article/details/24555655
android自定义ImageView,圆角和圆形,抗锯齿.亲测可用。直接拷贝代码就行。
Android实现圆形、圆角、椭圆自定义图片View,使用BitmapShader图形渲染实现的,代码有注释,读起来通俗易懂,有需要的可以下载哈 Android实现圆形、圆角、椭圆自定义图片View,使用BitmapShader图形渲染实现的,...
代码为博客的实例代码:http://blog.csdn.net/lmj623565791/article/details/41967509 有问题请博客留言。
该资源主要是参考博客http://blog.csdn.net/eastmount/article/details/40627599中实现的android工程,主要包括3个功能,添加相框两种方法、圆角显示图片和图像合成。希望对大家有所帮助,免费资源仅供大家学习分享。...
Android圆形相机预览窗口,圆形SurfaceView.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
代码为博客实例代码,有问题请博客留言:http://blog.csdn.net/lmj623565791/article/details/42094215
主要为大家详细介绍了Android实现圆形图片或者圆角图片的代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
最近在开发一个Android App,用户头像那里需要弄一个圆形的图片,但是 xml 的方式是不可以的, xml 只能改变背景为圆角的,没法改图片本身。 只能通过java代码改,但是java图像处理不太会用啊,网上的教程一看一...
现在我们就来看看怎么样把图片的四角都变成圆形的,为什么要这样做那,如果要是这样界面就会非常的美观,下面我们就来看看代码吧。 java代码: 代码如下: public static Bitmap toRoundCorner(Bitmap bitmap, int ...
运用实例代码介绍如何在Android中自定义view,使用BitmapShader图形渲染方法来实现圆形、圆角和椭圆的绘制,有需要的可以参考借鉴。
android 头像 图像圆形化,获取相册照片,获取相机照片.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
机智的我,第一想法就是,切一张中间圆形透明、四周与底色相同、尺寸与头像相同的蒙板图片,盖在头像上不就完事了嘛,哈哈哈! 在背景纯色的前提下,这的确能简单解决问题,但是如果背景没有这么简单呢? 在这种不...