Android開(kāi)發(fā)之Picasso通過(guò)URL獲取用戶頭像的圓形顯示
1.設(shè)置布局屬性:
<ImageView android:scaleType="fitXY"/>
2.BitmapUtils類-- 得到指定圓形的Bitmap對(duì)象
public static Bitmap circleBitmap(Bitmap source) {
//獲取Bitmap的寬度
int width = source.getWidth();
//以Bitmap的寬度值作為新的bitmap的寬高值。
Bitmap bitmap = Bitmap.createBitmap(width, width, Bitmap.Config.ARGB_8888);
//以此bitmap為基準(zhǔn),創(chuàng)建一個(gè)畫(huà)布
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setAntiAlias(true);
//在畫(huà)布上畫(huà)一個(gè)圓
canvas.drawCircle(width / 2, width / 2, width / 2, paint);
//設(shè)置圖片相交情況下的處理方式
//setXfermode:設(shè)置當(dāng)繪制的圖像出現(xiàn)相交情況時(shí)候的處理方式的,它包含的常用模式有:
//PorterDuff.Mode.SRC_IN 取兩層圖像交集部分,只顯示上層圖像
//PorterDuff.Mode.DST_IN 取兩層圖像交集部分,只顯示下層圖像
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
//在畫(huà)布上繪制bitmap
canvas.drawBitmap(source, 0, 0, paint);
return bitmap;
}3.BitmapUtils類--壓縮圖片
//實(shí)現(xiàn)圖片的壓縮處理
//設(shè)置寬高必須使用浮點(diǎn)型,否則導(dǎo)致壓縮的比例:0
public static Bitmap zoom(Bitmap source,float width ,float height){
Matrix matrix = new Matrix();
//圖片的壓縮處理
matrix.postScale(width / source.getWidth(),height / source.getHeight());
Bitmap bitmap = Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, false);
return bitmap;
}4.根據(jù)user.getImageurl()顯示圓形圖像
//使用Picasso聯(lián)網(wǎng)獲取圖片
Picasso.with(this.getActivity()).load(user.getImageurl()).transform(new Transformation() {
@Override
public Bitmap transform(Bitmap source) {//下載以后的內(nèi)存中的bitmap對(duì)象
//壓縮處理
Bitmap bitmap = BitmapUtils.zoom(source, UIUtils.dp2px(62),UIUtils.dp2px(62));
//圓形處理
bitmap = BitmapUtils.circleBitmap(bitmap);
//回收bitmap資源
source.recycle();
return bitmap;
}
@Override
public String key() {
return "";//需要保證返回值不能為null。否則報(bào)錯(cuò)
}
}).into(ivMeIcon);以上所述是小編給大家介紹的android開(kāi)發(fā)之Picasso通過(guò)URL獲取用戶頭像的圓形顯示,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android TextView字幕效果實(shí)例
- Android自定義attr的各種坑
- Android 日歷控件庫(kù),可左右滑動(dòng),顯示公歷,農(nóng)歷,節(jié)假日等功能
- Android實(shí)現(xiàn)精確到天時(shí)分秒的搶購(gòu)倒計(jì)時(shí)
- Android 系統(tǒng)實(shí)現(xiàn)多種開(kāi)機(jī)動(dòng)畫(huà)和logo切換功能
- Android?jar庫(kù)源碼Bolts原理解析
- Android使用手勢(shì)監(jiān)聽(tīng)器GestureDetector遇到的不響應(yīng)問(wèn)題
- Android?狀態(tài)管理之Lifecycle淺析
相關(guān)文章
Android應(yīng)用中制作選中后圖標(biāo)變大浮動(dòng)效果的代碼分享
這篇文章主要介紹了Android應(yīng)用中制作選中后圖標(biāo)變大浮動(dòng)效果的代碼分享,這里作者舉了一個(gè)體育賽事app的例子,需要的朋友可以參考下2016-02-02
使用ViewPager實(shí)現(xiàn)高仿launcher左右拖動(dòng)效果
今天用ViewPager這個(gè)類實(shí)現(xiàn)了同樣的左右拖動(dòng)效果,這樣代碼更少,但是效果是一樣的,ViewPager是實(shí)現(xiàn)左右兩個(gè)屏幕平滑地切換的一個(gè)類,它是Google提供的,有需要的朋友可以了解下2013-01-01
Android用文件存儲(chǔ)數(shù)據(jù)的方法
這篇文章主要為大家詳細(xì)介紹了Android用文件存儲(chǔ)數(shù)據(jù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Android基于ibeacon實(shí)現(xiàn)藍(lán)牙考勤功能
這篇文章主要為大家詳細(xì)介紹了Android基于ibeacon實(shí)現(xiàn)藍(lán)牙考勤功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
Android Studio 配置忽略文件的方法實(shí)現(xiàn)
這篇文章主要介紹了Android Studio 配置忽略文件的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Android BottomNavigationBar底部導(dǎo)航的使用方法
這篇文章主要為大家詳細(xì)介紹了Android BottomNavigationBar底部導(dǎo)航的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Gradle?Build?Cache引發(fā)的Task緩存編譯問(wèn)題
這篇文章主要為大家介紹了Gradle?Build?Cache引發(fā)的Task緩存編譯問(wèn)題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Android通過(guò)訪問(wèn)網(wǎng)頁(yè)查看網(wǎng)頁(yè)源碼實(shí)例詳解
這篇文章主要介紹了Android通過(guò)訪問(wèn)網(wǎng)頁(yè)查看網(wǎng)頁(yè)源碼的相關(guān)資料,需要的朋友可以參考下2017-06-06
Android?Studio實(shí)現(xiàn)簡(jiǎn)單繪圖板
這篇文章主要為大家詳細(xì)介紹了Android?Studio實(shí)現(xiàn)簡(jiǎn)單繪圖板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05

