效果图
在开发APP中,经常要实现圆形头像,那么该如何实现呢?
要裁剪吗,要重写draw函数吗?不用,只用一行代码就可以实现
Glide实现圆形图像
Glide.with(mContext) .load(R.drawable.iv_image_header) .error(R.drawable.ic_error_default) .transform(new GlideCircleTransform(mContext)) .into(mImage);
其中load后为载入的图像,error后为出错时载入的图像,transform是对其修改,我们也是通过这个GlideCirTransForm来修改的,使用的话要把mContext替换为你自己的activty,mImage为图片载入的位置
使用之前的准备
1.添加项目依赖
compile 'org.greenrobot:eventbus:3.0.0' compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.retrofit2:converter-gson:2.0.2' compile 'com.github.bumptech.glide:glide:3.7.0' compile 'org.jetbrains:annotations-html" target="_blank">java5:15.0' compile 'in.srain.cube:ultra-ptr:1.0.11' compile 'com.wang.avi:library:1.0.5'
2.导入GlideCircleTransform.java文件
GlideCircleTransform.java代码如下:
package com.sina.weibo.sdk.demo.utils; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Paint; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; public class GlideCircleTransform extends BitmapTransformation { public GlideCircleTransform(Context context) { super(context); } @Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) { return circleCrop(pool, toTransform); } private static Bitmap circleCrop(BitmapPool pool, Bitmap source) { if (source == null) return null; int size = Math.min(source.getWidth(), source.getHeight()); int x = (source.getWidth() - size) / 2; int y = (source.getHeight() - size) / 2; Bitmap squared = Bitmap.createBitmap(source, x, y, size, size); Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888); if (result == null) { result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); } Canvas canvas = new Canvas(result); Paint paint = new Paint(); paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP)); paint.setAntiAlias(true); float r = size / 2f; canvas.drawCircle(r, r, r, paint); return result; } @Override public String getId() { return getClass().getName(); } }
完成这两步,你就可以使用那行代码完成你自己的圆形头像啦!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持小牛知识库!
本文向大家介绍Android自定义控件之圆形/圆角的实现代码,包括了Android自定义控件之圆形/圆角的实现代码的使用技巧和注意事项,需要的朋友参考一下 一、问题在哪里? 问题来源于app开发中一个很常见的场景——用户头像要展示成圆的: 二、怎么搞? 机智的我,第一想法就是,切一张中间圆形透明、四周与底色相同、尺寸与头像相同的蒙板图片,盖在头像上不就完事了嘛,哈哈哈! 在背景纯色的前提下,这的
本文向大家介绍Android利用CircleImageView实现圆形头像的方法,包括了Android利用CircleImageView实现圆形头像的方法的使用技巧和注意事项,需要的朋友参考一下 CircleImageView实现圆形头像代码分享,供大家参考,具体内容如下 一、创建属性文件(attrs.xml) 具体操作: 1、在项目的values文件底下创建一新的属性文件,文件名为attrs:N
本文向大家介绍Android实现空心圆角矩形按钮的实例代码,包括了Android实现空心圆角矩形按钮的实例代码的使用技巧和注意事项,需要的朋友参考一下 页面上有时会用到背景为空心圆角矩形的Button,可以通过xml绘制出来。 drawrable文件夹下bg_red_hollow_rectangle.xml shape:图形,rectangle为矩形; stoke:描边 solid:填充 corn
本文向大家介绍c#创建圆形类Circle、矩形类实现代码,包括了c#创建圆形类Circle、矩形类实现代码的使用技巧和注意事项,需要的朋友参考一下 c#创建圆形类,其中包括set,get方法 C#——Circle(圆)类 问题描述 定义一个Circle类,其功能有: -两个double类型属性X和Y,可读写圆心坐标 -一个double类型属性Radius,可读写圆的半径 -一个构造方法,以指定的x
本文向大家介绍Android实现圆角矩形和圆形ImageView的方式,包括了Android实现圆角矩形和圆形ImageView的方式的使用技巧和注意事项,需要的朋友参考一下 Android中实现圆角矩形和圆形有很多种方式,其中最常见的方法有ImageLoader设置Option和自定义View。 1.ImageLoader加载图片 ImageLoader.getInstance().displa
本文向大家介绍Android实现本地上传图片并设置为圆形头像,包括了Android实现本地上传图片并设置为圆形头像的使用技巧和注意事项,需要的朋友参考一下 先从本地把图片上传到服务器,然后根据URL把头像处理成圆形头像。 因为上传图片用到bmob的平台,所以要到bmob(http://www.bmob.cn)申请密钥。 效果图: 核心代码: 以上所述就是本文的全部内容了,希望大家能喜欢。