首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

Android Picasso是一个用于管理图片加载和缓存的开源库。它提供了简单易用的API来加载、展示和处理图片,使开发者能够轻松地在Android应用中实现圆形图片和圆角图片效果。

  1. 圆形图片:要实现圆形图片效果,可以使用Picasso提供的transform()方法结合自定义的Transformation来实现。下面是实现圆形图片效果的示例代码:
代码语言:txt
复制
// 定义一个自定义的Transformation
public class CircleTransform implements Transformation {
    @Override
    public Bitmap transform(Bitmap source) {
        int size = Math.min(source.getWidth(), source.getHeight());
        int x = (source.getWidth() - size) / 2;
        int y = (source.getHeight() - size) / 2;

        Bitmap squaredBitmap = Bitmap.createBitmap(source, x, y, size, size);
        if (squaredBitmap != source) {
            source.recycle();
        }

        Bitmap bitmap = Bitmap.createBitmap(size, size, source.getConfig());

        Canvas canvas = new Canvas(bitmap);
        Paint paint = new Paint();
        BitmapShader shader = new BitmapShader(squaredBitmap, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP);
        paint.setShader(shader);
        paint.setAntiAlias(true);

        float r = size / 2f;
        canvas.drawCircle(r, r, r, paint);

        squaredBitmap.recycle();
        return bitmap;
    }

    @Override
    public String key() {
        return "circle";
    }
}

// 使用Picasso加载并显示圆形图片
Picasso.get()
    .load(imageUrl)
    .transform(new CircleTransform())
    .into(imageView);
  1. 圆角图片:要实现圆角图片效果,同样可以利用Picasso的transform()方法和自定义的Transformation。下面是实现圆角图片效果的示例代码:
代码语言:txt
复制
// 定义一个自定义的Transformation
public class RoundedCornersTransform implements Transformation {
    private final int radius;

    public RoundedCornersTransform(int radius) {
        this.radius = radius;
    }

    @Override
    public Bitmap transform(Bitmap source) {
        Bitmap result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(result);

        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setColor(Color.WHITE);

        RectF rectF = new RectF(0, 0, source.getWidth(), source.getHeight());
        canvas.drawRoundRect(rectF, radius, radius, paint);

        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(source, 0, 0, paint);

        if (result != source) {
            source.recycle();
        }

        return result;
    }

    @Override
    public String key() {
        return "rounded_corners";
    }
}

// 使用Picasso加载并显示圆角图片
Picasso.get()
    .load(imageUrl)
    .transform(new RoundedCornersTransform(radius))
    .into(imageView);

优势:

  • 简化了图片加载和缓存的流程,提高了开发效率。
  • 支持灵活的图片转换和处理,可以轻松实现圆形图片和圆角图片等效果。
  • 自带的缓存功能可以提高图片加载的性能和用户体验。

应用场景:

  • 在社交类应用中,用于显示用户头像的圆形图片。
  • 在商品展示类应用中,用于显示商品列表中的圆角缩略图。
  • 在新闻类应用中,用于显示新闻列表中的圆角封面图。

推荐的腾讯云相关产品和产品介绍链接地址: 腾讯云提供了丰富的云计算和存储产品,以下是一些相关产品的介绍:

  • 腾讯云图片处理(Image Processing):提供了丰富的图片处理功能,如缩放、裁剪、旋转等,并且支持自定义的图片处理接口,可以方便地实现圆形图片和圆角图片效果。详细介绍请参考:https://cloud.tencent.com/product/imgpi
  • 腾讯云对象存储(COS):提供了高性能、高可靠性的分布式对象存储服务,可以用于存储和管理图片等文件。可以通过与Picasso等图片加载库结合使用,实现快速的图片加载和缓存。详细介绍请参考:https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android经典实战之Kotlin中实现圆角图片圆形图片

    方法一:自定义View 在 Kotlin 中实现圆角的 AppCompatImageView 可以通过自定义控件使用 Canvas Path 进行剪裁来实现。...下面是一个简单的实现方法,继承 AppCompatImageView 并自定义绘制方法,使其可以设置圆角属性。...android:scaleType="centerCrop" android:src="@drawable/your_image" /> 在代码中动态设置圆角 最后,在代码中动态设置圆角...2、 使用自定义的 RoundedImageView 并动态设置圆角。 通过这种方式,可以实现一个自定义的 AppCompatImageView,能够根据需要动态调整圆角半径。...使用 ShapeableImageView ShapeableImageView 是 Android Material 库的一部分,可以非常方便地实现圆角其他形状效果。

    26910

    android 圆角图片实现封装

    最近被人问起圆角图片实现,花了一点时间鼓捣了下,下面简单分享下。 完整例子: RoundImage 先上效果图 ? ? ? ?...下面为主要源码,实现Picasso 中的 Transformation 接口。...,上面的原理不局限于 Picasso 完全也可以用在 Glide 或则其他地方,结合图片库的封装可以对上面继续进行一次封装。...有一点提一下如果你的 ImageView 有用 android:scaleType=”centerCrop” 属性,可能上面方法就有点不合适了,centerCrop 属性会截取图片的中心区域展示很可能圆角就不在展示范围了...但是大多场景 UI 给出的设计尺寸图片比例应该是一致的,上面的适用范围还是很大的。 如果你想达到 centerCrop 属性的效果,也不是不可以,只是不适合封装在 Picasso 的内部逻辑中了。

    1.1K40

    iOS设置圆角圆形图片

    方方正正的样式往往会显得很生硬,而圆角的样式会让人产生别样的亲切感,现在越来越多地用到圆角,诸如用户头像之类的图片也大都用圆形来显示,本文就介绍如何设置按钮、文本框的圆角以及制作圆形图片。...先来看看效果图: 如效果图所示,我们制作了一个圆形的头像,一个完全半圆的圆角按钮,一个小圆角的按钮,以及一个带边框且边框为圆角的label。...对于圆形的头像,要制作正圆,我们需要首先设置UIImageView的高宽的一致的,然后我们设置其圆角角度为高度除以2即可,相当于90度,代码如下: // 圆形头像 UIImageView *avatarImgView...CGRectMake((SCREENWIDTH - 75) / 2, 150, 75, 75)]; avatarImgView.image = [UIImage imageNamed:@"icon"]; // 图片圆形...[label.layer setCornerRadius:4.0]; [self.view addSubview:label]; 如上,基本的圆角设置就实现了,很简单实用吧。

    1.8K20

    Android Picasso不缓存图片

    Android Picasso不缓存图片 问题描述:大多APP都有更换个人头像的功能,楼主在开发中遇到了当更换头像时,头像没有更换过来的问题,我用的是Picasso图片请求框架,而这些加载图片的框架一般都会有三级缓存策略...,当我们去加载一张图片的时候就会优先查找本地有没有,当一张图片已经加载过了之后就会缓存到本地,虽然我们更换了头像,但是图片的url没有变,所以再次加载的时候还是原来本地缓存的图片,而不是新的图片,所以我们在加载图片的时候可以设置不进行缓存即可...,这样每次修改完头像就加载的是新的头像了… 写法如下: Picasso.with(mContext).load("http://" + headpic).memoryPolicy(MemoryPolicy.NO_CACHE

    1.5K10

    iOS编程101:如何创建圆形头像圆角图片

    这篇短文中,我们将探讨CALayer类,以及如何运用它来创建圆形图像或圆角图像。 您可能并没有听说过CALayer类。但是,如果你曾经创建过应用程序,那么你应该以某种方式使用过它。...layer对象提供了多种属性,使用它们来控制视图的可视内容: 背景颜色 边框边框宽度 阴影颜色,宽度等 Opacity(不透明度) 圆角半径 Corner radius就是我们用来绘制圆角圆形图像的属性...创建圆形用户头像 接下来,让我们看看如何通过改变圆角半径,使用户头像转换成一个圆形图像。...现在编译运行应用程序,你会得到一个圆形头像。 ? 非常容易吧。只需两行代码,图像从方形变为圆形。无需Photoshop。 添加边框 接下来,我们给头像添加边框使它更漂亮点。同样,也只需要两行。...创建圆角图片 你可以使用同样的方法来创建圆角图像。关键是要改变圆角半径,并将其设置为其他值。

    2.1K20

    Android实现带描边的圆角图片

    利用学过的BitmapShader渲染类,我们来实现一个带描边的圆角图片。 具体实现: 用来显示自定义的绘图类的布局文件 res/layout/main.xml: <?...,继承android.view.View类,并添加构造方法重写onDraw(Canvas canvas)方法,在里面进行作图: 在onDraw(Canvas canvas)方法中,首先定义一个画笔,并设置其使用抗锯齿功能...,然后定义一张背景,然后定义一个要绘制的圆角矩形的区域,并将画布在X轴上平移40像素,在Y轴上平移20像素,再绘制一个黑色的2像素的圆角矩形,作为图片的边,最后绘制一个使用BitmapShader渲染的圆角矩形图片...RectF rect=new RectF(0,0,280,180); canvas.translate(40, 20);//将画布在X轴上平移40像素,在Y轴上平移20像素 //为图片添加描边...BitmapShader(bm,TileMode.REPEAT,TileMode.MIRROR); paint.setShader(bs);//设置渲染对象 //绘制一个使用BitmapShader渲染的圆角矩形图片

    2.2K10

    android自定义imageview实现圆角图片

    本文实例为大家分享了android自定义imageview实现圆角图片的具体代码,供大家参考,具体内容如下 自定义图片的属性,对图片进行圆角切割 实现效果图: ?...<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com...="@color/colorAccent" / </LinearLayout 2.1注意添加attrs文件,设置图片的属性,然后在java代码中引用属性,在xml文件使用相关属性 <?...declare-styleable </resources (2)MainActivity直接导入上面的布局即可,无需其他操作,如果要写监听或者其他操作,需要特别处理,这里仅仅提供显示 (3)开源的工具类,图片圆角转换工具类...android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.view.ViewOutlineProvider

    1.7K20

    PHPGrafika 如何实现圆角图片

    PHPGrafika 如何实现圆角图片在网站开发中,圆角图片是非常常见的一种设计元素。使用 PHPGrafika 库可以很方便的实现圆角图片的制作。...PHPGrafika 如何实现圆角图片PHPGrafika 是一款 PHP 图像处理库,它提供了许多图像处理功能,包括剪裁、缩放、旋转、滤镜等等。...下面我们来看看如何使用 PHPGrafika 库实现圆角图片。第一步:安装 PHPGrafika 库在开始之前,我们需要先安装 PHPGrafika 库。...第二步:创建图像对象在 PHPGrafika 库中,图像对象是对图像文件的封装,我们可以通过它来访问修改图像文件的属性内容。...第三步:制作圆角图片要制作圆角图片,我们需要使用 PHPGrafika 库提供的 `roundCorner()` 方法。这个方法接受三个参数:圆角半径、圆角颜色背景颜色。

    21530

    android自定义控件ImageView实现圆形图片

    android开发中常常涉及到一种情况,就是将用户上传的图片圆形样式显示,但是用户上传的图片可以有直角、圆角、正方形等多种不确定样式,这时就用到了自定义ImageView控件,在安卓客户端使接收到的图片全部以圆形样式显示...BITMAP_CONFIG = Bitmap.Config.ARGB_8888; private static final int COLORDRAWABLE_DIMENSION = 2; // 圆形边框的厚度默认值...<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com.../apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android...:layout_height="match_parent" android:orientation="vertical" <com.example.view.CircleImageView android

    1.1K10
    领券