[原創]可動態顯示圓形圖像或圓形文字的AvatarImageView


項目地址:

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)設置圖片或者文字的方法:

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的結合:

1         Glide
2                 .with(activity)
3                 .load(picurl)
4                 .centerCrop()
5                 .crossFade()
6                 .into(aiv);    

 

添加至工程

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" />

 

項目地址:

https://github.com/Carbs0126/AvatarImageView


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM