項目地址:android
https://github.com/Carbs0126/AvatarImageViewgit
前言:github
在作電話本或者其餘應用時,顯示聯繫人頭像的策略通常是這樣的:先判斷是否有頭像圖片,若是有,則直接顯示圖片;若是沒有,則顯示聯繫人的名字的第一個字,將這個文字做爲頭像,並添加背景顏色。curl
截圖:ide
主要功能:
1.顯示圓形圖像;
2.顯示圓形文字;
3.文字大小與圓形半徑的比例能夠調整;
4.能夠添加圓形邊框;
5.圖片、文字的顯示始終是居中的;其中圖片的居中規則是:若是圖片寬大於高,那麼截取以高爲正方形的中間部分。若是圖片高大於寬,那麼截取以寬爲正方形的中間部分。
6.因爲是繼承於ImageView,且在onDraw()時去掉了super.onDraw(),並覆寫了設置drawable的函數,所以能夠直接將此view賦值給相似Glide等第三方的庫,使其直接加載圖片,且圖片爲圓形(不須要作調整);
7.支持padding函數
注意事項:
暫時不支持wrap_content模式this
圓形圖像顯示原理:
使用shader + matrix的方式顯示圓形圖片,其中圓形是有shader產生的,而居中的調整方式是由matrix設置的。url
使用方法:spa
(1)設置圖片或者文字的方法:code
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" />
項目地址: