`

Android圆形,圆角图片代码

 
阅读更多
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;
//        }

  • 大小: 75.3 KB
分享到:
评论

相关推荐

    Android 完美实现图片圆角和圆形

    5. **性能优化**: 对于大量或者频繁使用的圆角图片,可以考虑使用BitmapShader来绘制,这样可以避免重复创建Bitmap和重绘,提高性能。 6. **圆形图片**: 要将图片转换为圆形,只需在`Path.addRoundRect()`方法中...

    Android 圆形、圆角图片

    这个【标题】"Android 圆形、圆角图片" 指的是一个Android应用示例,它展示了一个自定义的ImageView组件,能够显示圆角或者完全圆形的图片。这个功能通常用于用户头像、应用图标等需要突出形状美感的地方。 【描述...

    Android中Glide加载圆形图片和圆角图片实例代码

    介绍两种使用 BitmapTransformation 来实现 Glide 加载圆形图片和圆角图片的方法。Glide 并不能直接支持 Round Pictures ,需要使用 BitmapTransformation 来进行处理。 二、网上的实现方式 这里介绍下网上常见的...

    Android圆形与圆角图片的裁剪

    在Android开发中,为了实现更具视觉吸引力的UI设计,经常需要对图片进行处理,比如将它们裁剪为圆形或带有圆角的形状。这在创建用户头像、按钮或者其他...希望这篇文章能为你在处理Android圆形和圆角图片时提供帮助。

    Android Picasso实现圆形图片和圆角图片

    本篇文章将深入探讨如何使用Picasso在Android应用中实现圆形图片和圆角图片。 首先,我们需要在项目中添加Picasso的依赖。如果你使用的是Gradle构建系统,可以在app模块的build.gradle文件中添加以下依赖: ```...

    Android自定义圆形圆角图片示例

    本文将深入探讨如何在Android中实现自定义的圆形和圆角图片。 首先,我们来看如何创建一个简单的圆形图片。在Android中,我们可以使用`BitmapShader`类来实现这一效果。以下是一个简单的例子: ```java public ...

    Android自定义圆形图片和圆角图片

    综上所述,Android提供了丰富的图形绘制API,使得开发者能够自定义创建圆形或圆角图片,以提升应用的用户体验。通过理解和运用上述方法,你可以灵活地根据需求调整图片的形状,从而实现独特的视觉效果。

    Glide加载圆形图片和自定义圆角图片

    这个项目包含了加载圆形图片和自定义圆角图片的完整实现,包括布局文件、Activity代码和对应的Glide调用。通过分析这个项目,你可以更深入地理解如何在Android应用中灵活运用Glide处理图片的显示。 总之,Glide的...

    Android-android-shape-imageview-图片圆角三角五角圆形多角

    1. **圆角图片**:在XML drawable中,你可以通过`&lt;corners&gt;`标签设置ImageView的圆角半径,实现圆角效果。例如: ```xml &lt;shape xmlns:android="http://schemas.android.com/apk/res/android"&gt; &lt;solid android:...

    Android 图片,圆角矩形或圆形显示

    在Android开发中,为了提升...通过分析和学习`RoundPictureDemo-master`项目中的代码,开发者可以更好地理解和掌握在Android中实现图片圆角和圆形显示的技术。同时,这也是一个提升UI设计和自定义视图能力的好实践。

    安卓 Xfermode 实现圆形圆角图片

    提供的压缩包文件"Android Xfermode 实战实现圆形、圆角图片"可能包含了示例代码,可以作为学习和实践的参考。 总之,Android的`Xfermode`机制为开发者提供了强大的图像处理能力,通过巧妙地运用它可以轻松实现圆形...

    Android BitmapShader 实现圆形、圆角图片

    在给定的标题“Android BitmapShader 实现圆形、圆角图片”中,我们主要探讨如何利用BitmapShader来创建圆形和圆角的图片展示。BitmapShader可以让我们控制Bitmap的渲染方式,从而实现各种形状的图片,而不仅仅是...

    Android Xfermode 实战实现圆形、圆角图片

    以上代码片段展示了如何使用Android Xfermode创建圆形和圆角图片的基本步骤。你可以根据实际需求调整参数,例如圆角半径、图片尺寸等。在项目中,你可以将这些方法封装成工具类,方便在多个地方复用。 博客链接:...

    android 图片圆角化

    以下是一个简单的自定义`ImageView`示例,用于绘制圆角图片: ```java public class RoundImageView extends ImageView { private float cornerRadius; public RoundImageView(Context context) { super...

    安卓头像制作图片圆角剪裁相关-Android自定义圆形圆角控件.zip

    本资源包"安卓头像制作图片圆角剪裁相关-Android自定义圆形圆角控件.zip"提供了一些解决方案,帮助开发者实现这样的功能。由于文件列表中并未包含具体的源码文件,这里将根据描述和标签,讲解一下如何在Android中...

    android圆形图片裁剪demo以及实现

    本示例"android圆形图片裁剪demo以及实现"就是针对这一需求提供的一种解决方案。下面将详细介绍如何在Android应用中实现圆形图片裁剪功能。 1. **圆角和圆形图片的原理** 在Android中,我们可以通过`BitmapShader`...

    android自定义ImageView圆角和圆形抗锯齿

    android自定义ImageView,圆角和圆形,抗锯齿.亲测可用。直接拷贝代码就行。

    Android-RoundRectLayout圆角矩形的绘制方案解决任意圆角和圆形图片

    在Android应用开发中,UI设计往往需要实现各种各样的图形效果,其中圆角矩形和圆形图片是最常见的需求之一。`RoundRectLayout`是专门为解决此类问题而设计的一个自定义布局,它允许开发者轻松地创建具有任意圆角和...

    Android-一个Kotlin实现的简单小巧支持圆形和圆角定制化的ImageView

    总结起来,"Android-一个Kotlin实现的简单小巧支持圆形和圆角定制化的ImageView"是一个旨在简化Android图片视图定制的工具,它利用Kotlin的高效特性,提供了便捷的API来创建圆形或圆角图片。这个组件对于提升应用...

    简单实现android图片圆角和圆形

    在Android开发中,为图片添加圆角或将其转化为圆形是一种常见的需求,这通常涉及到自定义View的使用。本文将深入探讨如何在Android中简单实现图片的圆角效果以及将其转换为圆形图片。 首先,我们需要了解Android中...

Global site tag (gtag.js) - Google Analytics