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;
// }
相关推荐
5. **性能优化**: 对于大量或者频繁使用的圆角图片,可以考虑使用BitmapShader来绘制,这样可以避免重复创建Bitmap和重绘,提高性能。 6. **圆形图片**: 要将图片转换为圆形,只需在`Path.addRoundRect()`方法中...
这个【标题】"Android 圆形、圆角图片" 指的是一个Android应用示例,它展示了一个自定义的ImageView组件,能够显示圆角或者完全圆形的图片。这个功能通常用于用户头像、应用图标等需要突出形状美感的地方。 【描述...
介绍两种使用 BitmapTransformation 来实现 Glide 加载圆形图片和圆角图片的方法。Glide 并不能直接支持 Round Pictures ,需要使用 BitmapTransformation 来进行处理。 二、网上的实现方式 这里介绍下网上常见的...
在Android开发中,为了实现更具视觉吸引力的UI设计,经常需要对图片进行处理,比如将它们裁剪为圆形或带有圆角的形状。这在创建用户头像、按钮或者其他...希望这篇文章能为你在处理Android圆形和圆角图片时提供帮助。
本篇文章将深入探讨如何使用Picasso在Android应用中实现圆形图片和圆角图片。 首先,我们需要在项目中添加Picasso的依赖。如果你使用的是Gradle构建系统,可以在app模块的build.gradle文件中添加以下依赖: ```...
本文将深入探讨如何在Android中实现自定义的圆形和圆角图片。 首先,我们来看如何创建一个简单的圆形图片。在Android中,我们可以使用`BitmapShader`类来实现这一效果。以下是一个简单的例子: ```java public ...
综上所述,Android提供了丰富的图形绘制API,使得开发者能够自定义创建圆形或圆角图片,以提升应用的用户体验。通过理解和运用上述方法,你可以灵活地根据需求调整图片的形状,从而实现独特的视觉效果。
这个项目包含了加载圆形图片和自定义圆角图片的完整实现,包括布局文件、Activity代码和对应的Glide调用。通过分析这个项目,你可以更深入地理解如何在Android应用中灵活运用Glide处理图片的显示。 总之,Glide的...
1. **圆角图片**:在XML drawable中,你可以通过`<corners>`标签设置ImageView的圆角半径,实现圆角效果。例如: ```xml <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:...
在Android开发中,为了提升...通过分析和学习`RoundPictureDemo-master`项目中的代码,开发者可以更好地理解和掌握在Android中实现图片圆角和圆形显示的技术。同时,这也是一个提升UI设计和自定义视图能力的好实践。
提供的压缩包文件"Android Xfermode 实战实现圆形、圆角图片"可能包含了示例代码,可以作为学习和实践的参考。 总之,Android的`Xfermode`机制为开发者提供了强大的图像处理能力,通过巧妙地运用它可以轻松实现圆形...
在给定的标题“Android BitmapShader 实现圆形、圆角图片”中,我们主要探讨如何利用BitmapShader来创建圆形和圆角的图片展示。BitmapShader可以让我们控制Bitmap的渲染方式,从而实现各种形状的图片,而不仅仅是...
以上代码片段展示了如何使用Android Xfermode创建圆形和圆角图片的基本步骤。你可以根据实际需求调整参数,例如圆角半径、图片尺寸等。在项目中,你可以将这些方法封装成工具类,方便在多个地方复用。 博客链接:...
以下是一个简单的自定义`ImageView`示例,用于绘制圆角图片: ```java public class RoundImageView extends ImageView { private float cornerRadius; public RoundImageView(Context context) { super...
本资源包"安卓头像制作图片圆角剪裁相关-Android自定义圆形圆角控件.zip"提供了一些解决方案,帮助开发者实现这样的功能。由于文件列表中并未包含具体的源码文件,这里将根据描述和标签,讲解一下如何在Android中...
本示例"android圆形图片裁剪demo以及实现"就是针对这一需求提供的一种解决方案。下面将详细介绍如何在Android应用中实现圆形图片裁剪功能。 1. **圆角和圆形图片的原理** 在Android中,我们可以通过`BitmapShader`...
android自定义ImageView,圆角和圆形,抗锯齿.亲测可用。直接拷贝代码就行。
在Android应用开发中,UI设计往往需要实现各种各样的图形效果,其中圆角矩形和圆形图片是最常见的需求之一。`RoundRectLayout`是专门为解决此类问题而设计的一个自定义布局,它允许开发者轻松地创建具有任意圆角和...
总结起来,"Android-一个Kotlin实现的简单小巧支持圆形和圆角定制化的ImageView"是一个旨在简化Android图片视图定制的工具,它利用Kotlin的高效特性,提供了便捷的API来创建圆形或圆角图片。这个组件对于提升应用...
在Android开发中,为图片添加圆角或将其转化为圆形是一种常见的需求,这通常涉及到自定义View的使用。本文将深入探讨如何在Android中简单实现图片的圆角效果以及将其转换为圆形图片。 首先,我们需要了解Android中...