关闭

可动态显示圆形图像或圆形文字的AvatarImageView

标签: androidview
1489人阅读 评论(1) 收藏 举报
分类:

项目地址

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.AvatarImageView
        android: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

1
0
查看评论

Android 自定义圆形文字头像

因为最近做一个项目,需要用到圆形头像,然后中间显示用户名的第一个字符,记得之前网上又看到该开源库,但是忽然就找不到了,无奈,只能自己写一个控件。 该控件继承ImageView,主要有以下几个属性: 自定义背景颜色; 自定义文字颜色; 随机产生背景颜色; 仅显示text的第一个字符; 根据tex...
  • u013606974
  • u013606974
  • 2016-07-13 17:56
  • 1996

Android图片,文字的适配

在Android中适配一般指的是图片,文字,还有布局的适配 1.在布局的适配中尽量使用wrap_content、match_parent、weight这些属性,它们会很好的自动适应不同屏幕的布局,其中在使用weight时,设置layout_width=0或wrap_content时,计算出来的尺寸是...
  • qq_15103193
  • qq_15103193
  • 2017-02-14 19:43
  • 330

AvatarImageView

  • 2015-10-27 15:42
  • 1.70MB
  • 下载

自定义AvatarImageView满足你所有头像显示需求

我们项目中头像显示一般都是圆形的,但是有时候不排除各种样式(不一定是个规则的形状),比如 上次UI给了我一个 圆形下面少了一块。我们一般实现自定义形状的图形有三种方式:PorterDuffXfermode 、BitmapShader、ClipPath。下面我都会分别说明,我这里实现使用的第一种方式(...
  • jyz_2015
  • jyz_2015
  • 2016-07-02 16:01
  • 1595

Android自定义控件之——文字圆形边框(将文字绘制在圆中间)

自定义的控件写了很多跟圆形有关系的,有时候蛮纠结在圆里面画文字的 有两种思路,一种是画圆之后再画字体,将字体控制在居中的位置 另外一种是:重写TextView,控制TextView的gravity居中,再绘制TextView的边框,重点介绍这种用法。 一、绘制之前,掌握RectF对象的用法 Re...
  • txfyteen
  • txfyteen
  • 2015-04-01 16:34
  • 5550

android圆形图片,圆形背景文字的CircleTextImageView开源组件

在项目中我们经常遇到需要显示圆形头像的需求,一般我们都使用hdodenhof/CircleImageView的这个开源控件实现(简洁,没多余的东西)。      而在的项目中我经常遇到这样的一个需求:如果用户上传了头像就显示圆形头像,如果没有上传头...
  • ys408973279
  • ys408973279
  • 2015-12-18 10:56
  • 4454

自定义圆形里面内嵌文字,文字可根据圆形大小自适应

前几天美工给了一个图标,大概是一个圆环,要求在圆环里面填写一个文字,文字是可以根据不同的数据替换的。本来呢用美工给的圆环图标,在加上textview居中布局就可以实现这个需求。但是有个不好的地方,美工给的图标像素实在是太低,放大后竟然会有些模糊,加上图标需要在地图上展示,这很影响用户的体验。想了想,...
  • u013979330
  • u013979330
  • 2016-07-29 16:30
  • 1444

android动态背景色圆形头像

RandomColor randomColor = new RandomColor(); int color = randomColor.randomColor();  //随机生成一个颜色值 Drawable myIcon = getContext().ge...
  • kao123yaojinqian
  • kao123yaojinqian
  • 2017-01-23 16:00
  • 256

Android 自定义圆形文字头像

自定义背景颜色; 自定义文字颜色; 随机产生背景颜色; 仅显示text的第一个字符; 根据text内容动态显示控件大小。 地址: https://github.com/viviant1224/CircleTextImage 希望大家能够支持。
  • xianbijue1738
  • xianbijue1738
  • 2017-01-02 01:36
  • 276

如何在ImageView里同时显示图片和文字甚至更复杂的内容

如何在ImageView里同时显示图片和文字甚至更复杂的内容你需要做的仅仅是引用一个drawable的工具类库,能满足以上所有需求. compile 'wu.seal:textwithimagedrawable:1.0.4'可以实现所有的图文混排的内容在一个ImageView里显示详...
  • wuseal
  • wuseal
  • 2016-07-15 11:39
  • 3462
    个人资料
    • 访问:35770次
    • 积分:527
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:1篇
    • 译文:0篇
    • 评论:19条
    文章分类
    最新评论