时间:2021-05-20
效果图
在开发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-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(); }}完成这两步,你就可以使用那行代码完成你自己的圆形头像啦!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在Android开发中我们常常用到圆形的头像,如果每次加载之后再进行圆形裁剪特别麻烦。所以在这里写一个自定义圆形ImageView,直接去加载网络图片,这样的话
然后在新文本的首行写入提取到的最后一行,用findstr语句过滤掉原文本的第一行和最后一行,在最后一行之后添加提取到的第一行。复制代码代码如下:@echooff
本文实例讲述了超级简单的jquery操作表格方法。分享给大家供大家参考。具体实现方法如下:利用jquery给指定的table添加一行、删除一行复制代码代码如下:
在最近写的一个天气APP中用到了圆形头像这样的一个样式,中间是圆形的头像(被圆形切割的图片),周围是一个带颜色的圆环。如下图所示,今天就来说一所它的实现过程。它
本小节我们将学习同步和异步的概念同步是指下一行代码必须等待上一行代码执行完成,才执行。异步是指下一行代码不必等待上一行代码执行完成,才执行。同步的优点是,关心代