项目地址

https://github.com/Carbs0126/AvatarImageView

前言:

在做电话本或者其他应用时,显示联系人头像的策略一般是这样的:先判断是否有头像图片,如果有,则直接显示图片;如果没有,则显示联系人的名字的第一个字,将这个文字作为头像,并添加背景颜色。

截图:

主要功能:

  1. 显示圆形图像;
  2. 显示圆形文字;
  3. 文字大小与圆形半径的比例可以调整;
  4. 可以添加圆形边框;
  5. 图片、文字的显示始终是居中的;其中图片的居中规则是:如果图片宽大于高,那么截取以高为正方形的中间部分。如果图片高大于宽,那么截取以宽为正方形的中间部分;
  6. 由于是继承于ImageView,且在onDraw()时去掉了super.onDraw(),并覆写了设置drawable的函数,因此可以直接将此view赋值给类似Glide等第三方的库,使其直接加载图片,且图片为圆形(不需要做调整);
  7. 支持padding;

注意事项:

暂时不支持wrap_content模式

圆形图像显示原理:

使用shader + matrix的方式显示圆形图片,其中圆形是有shader产生的,而居中的调整方式是由matrix设置的。

添加至工程

1.添加依赖

compile 'cn.carbs.android:AvatarImageView:1.0.1'

2.layout文件中添加此view

<cn.carbs.android.avatarimageview.library.AvatarImageViewandroid:id="@+id/item_avatar"android:layout_width="60dp"android:layout_height="60dp"android:padding="5dp" />

使用方法:

(1)设置图片或者文字的方法:

AvatarImageView aiv = (AvatarImageView) this.findViewById(R.id.aiv);
//设置图像:
aiv.setImageResource(R.drawable.id_014);
//或者:
aiv.setDrawable(drawable);
//或者:
aiv.setBitmap(bitmap);
//或者:
aiv.setImageDrawable(drawable);
//设置文字:
aiv.setTextAndColor("安", AvatarImageView.COLORS[0]);//直接设置颜色
//或者:
aiv.setTextAndColorSeed("安","安卓");//“安卓”字样作为产生backgroundcolor的seed

(2)与Glide的结合:

            Glide.with(activity).load(picurl).centerCrop().crossFade().into(aiv);

项目地址:

https://github.com/Carbs0126/AvatarImageView

可动态显示圆形图像或圆形文字的AvatarImageView相关推荐

  1. [原创]可动态显示圆形图像或圆形文字的AvatarImageView

    项目地址: https://github.com/Carbs0126/AvatarImageView 前言: 在做电话本或者其他应用时,显示联系人头像的策略一般是这样的:先判断是否有头像图片,如果有, ...

  2. 【OpenCV 例程200篇】19. 图像的圆形遮罩

    [OpenCV 例程200篇]19. 图像的圆形遮罩 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 图像掩模(ima ...

  3. Android实现圆形图像的两种方法(Glide和Picasso)

    Android实现圆形图像的两种方法 先上效果图 Glide Picasso CircleTransform.java(圆形图片工具类) 先上效果图 Glide 在app的build.gradle中引 ...

  4. php 微信头像 圆形,详解iOS 裁剪圆形图像并显示(类似于微信头像)

    本文主要讲解如何从照片库选择一张照片后将其裁剪成圆形头像并显示,类似于微信头像那种模式. 本文的方法也适用于当时拍照获取的图像,方法类似,所以不再赘述. 本文主要是在ios 10环境下使用,此时如果要 ...

  5. ios 裁剪圆形头像_iOS 裁剪圆形图像并显示(类似于微信头像)

    本文主要讲解如何从照片库选择一张照片后将其裁剪成圆形头像并显示,类似于微信头像那种模式. 本文的方法也适用于当时拍照获取的图像,方法类似,所以不再赘述. 本文主要是在iOS 10环境下使用,此时如果要 ...

  6. android自定义圆形图像

    这篇博客给大家带来使用xfermode实现圆形图像.先看效果: 这里说下原理,先看下图: 这里src和dst分别表示不同的bitmap,上面的图片有16种类型,分别表示不同情况下的交集,这里我们需要使 ...

  7. Android 自定义View----离屏缓冲和图像混合模式(圆形头像)

    这里主要了解下离屏缓冲和图像混合模式,可能在自定义view的时候会用到,绘制的内容也非常简单,一个简单的圆形头像 绘制大概分为5步: 1,开启离屏缓冲 2,绘制一个圆 3,设置图像混合模式   htt ...

  8. ios 裁剪圆形头像_详解iOS 裁剪圆形图像并显示(类似于微信头像)

    本文主要讲解如何从照片库选择一张照片后将其裁剪成圆形头像并显示,类似于微信头像那种模式. 本文的方法也适用于当时拍照获取的图像,方法类似,所以不再赘述. 本文主要是在iOS 10环境下使用,此时如果要 ...

  9. 【OpenCV 例程200篇】23. 图像添加中文文字

    [OpenCV 例程200篇]23. 图像添加中文文字 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 OpenCV ...

最新文章

  1. 再探文件输入和输出函数
  2. php reader oleread,PHP 实用技巧集锦
  3. python自动化库_Python自动化测试常用库整理
  4. 收集17句经典程序员口头禅
  5. Java双十二活动代码_双十二直播脚本怎么写?戳我速领!
  6. 英国首相用华为P20 Pro自拍引热议,网友:真香,比炸鱼和薯条还香
  7. python中MySQLdb模块用法实例
  8. 每日算法系列【LeetCode 1006】笨阶乘
  9. Linux的版本可分为,Linux不同分类标准下的各种版本解读
  10. 信用评分卡 (part 3of 7)
  11. android贪吃蛇设计报告,基于android的贪吃蛇游戏设计与开发
  12. 关于最新版的JCreator只能编译不能运行的问题
  13. adb下载安装及使用
  14. SpringBoot整合WebSocket案例
  15. java获取文件名格式 / java获取文件名后缀
  16. 《以幽默的方式过一生》总结1——春
  17. pandas 插入空列_Pandas在DF创建期间添加额外的空列(Pandas add additional empty columns during DF creation)...
  18. 安装了PS2022 后,画笔工具使用延迟,操作卡到无法忍受,PS 插件合都卸载掉、设置暂存盘等方法都没有效果
  19. 基于ITK的读并写 2D的DICOM 图像
  20. kali安装tools,和文件传输工具fuse问题合集

热门文章

  1. 马里奥:谁说我老了?任天堂今夏推新手游
  2. linux local socket,关于Local socket
  3. java注册界面发送邮箱验证码(无线程版)
  4. 用python实现局域网内共享文件
  5. 2021年爆火的“元宇宙”,是真风口还是资本骗局下的割韭菜?
  6. Spark优化篇:RBO/CBO
  7. 【PowerDesign】制作数据流图
  8. AXI协议详解(9)-数据总线
  9. JavaScript高级程序设计(读书笔记)(一)
  10. Linux下网卡驱动安装及故障排除