Picasso通過URL獲取--用戶頭像的圓形顯示

来源:http://www.cnblogs.com/ganchuanpu/archive/2017/06/27/7087776.html
-Advertisement-
Play Games

1.設置佈局屬性: 2.BitmapUtils類-- 得到指定圓形的Bitmap對象 3.BitmapUtils類--壓縮圖片 4.根據user.getImageurl()顯示圓形圖像 ...


1.設置佈局屬性:

<ImageView
    android:scaleType="fitXY"/>

2.BitmapUtils類-- 得到指定圓形的Bitmap對象

public static Bitmap circleBitmap(Bitmap source) {
    //獲取Bitmap的寬度
    int width = source.getWidth();
    //以Bitmap的寬度值作為新的bitmap的寬高值。
    Bitmap bitmap = Bitmap.createBitmap(width, width, Bitmap.Config.ARGB_8888);
    //以此bitmap為基準,創建一個畫布
    Canvas canvas = new Canvas(bitmap);
    Paint paint = new Paint();
    paint.setAntiAlias(true);
    //在畫布上畫一個圓
    canvas.drawCircle(width / 2, width / 2, width / 2, paint);

    //設置圖片相交情況下的處理方式
    //setXfermode:設置當繪製的圖像出現相交情況時候的處理方式的,它包含的常用模式有:
    //PorterDuff.Mode.SRC_IN 取兩層圖像交集部分,只顯示上層圖像
    //PorterDuff.Mode.DST_IN 取兩層圖像交集部分,只顯示下層圖像
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
    //在畫布上繪製bitmap
    canvas.drawBitmap(source, 0, 0, paint);

    return bitmap;

}

3.BitmapUtils類--壓縮圖片

//實現圖片的壓縮處理
//設置寬高必須使用浮點型,否則導致壓縮的比例: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.根據user.getImageurl()顯示圓形圖像

//使用Picasso聯網獲取圖片
Picasso.with(this.getActivity()).load(user.getImageurl()).transform(new Transformation() {
    @Override
    public Bitmap transform(Bitmap source) {//下載以後的記憶體中的bitmap對象
        //壓縮處理
        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。否則報錯
    }
}).into(ivMeIcon);

  

  

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在今天之前,我沒有很系統的看過,學習過vue。也是第一次嘗試用vue寫個小應用 現在開始研究配環境 這邊參考的是https://cn.vuejs.org/v2/guide/installation.html#%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7 ...
  • 說點小案例angular的排序 ...
  • 1. 原型鏈繼承 Child.prototype = new Parent(); 2. call(thisObj, param1, param2,...) 3. apply(thisObj, [param1,param2,...]) 4. 組合繼承(call+原型鏈 / apply+原型鏈) 5.寄 ...
  • [1]引入 [2]display [3]顯式網格 [4]間距 [5]網格線 [6]網格線命名 [7]網格區域命名 [8]隱式網格 [9]隱式命名 [10]網格項目層級 [11]對齊 ...
  • 圓形 circle 矩形 rect 橢圓 ellipse 線 line 折線 polyline 多邊形 polygon 路徑 path 可用於路徑數據的命令 M = moveto L = lineto H = horizontal lineto V = vertical lineto C = cur ...
  • 1.SVG 是用XML格式定義的矢量圖。 2.文件體積小,能夠被大量的壓縮。 3.圖片可無限放大而不失真(矢量圖的基本特征)。 4.在視網膜顯示屏上效果極佳。 5.能夠實現互動和濾鏡效果。 6.svg元素里提供了“width”和“height”兩個屬性來定義SVG圖片的高度和寬度。 7.fill屬性 ...
  • 此文章是稍早前寫的,本次屬於文章遷移@2017.06.27 前言 俗話說“在js語言中,一切都對象”,而且創建對象的方式也有很多種,所以今天我們做一下梳理 最簡單的方式 JavaScript創建對象最簡單的方式是:對象字面量形式或使用Object構造函數 對象字面量形式 使用Object構造函數 明 ...
  • /^(0(?:[.](?:[1-9]\d?|0[1-9]))|[1-9]\d*(?:[.]\d{1,2}|$))$/ 不為0的正整數或帶1到2位小數的數字(以0打頭的則後面必須接小數點且小數點後面必然為01-99,以大於0的數打頭則小數可為1至2位任意數字或無小數部分.) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...