1. 程式人生 > >Android Glide載入圖片時轉換為圓形、圓角、毛玻璃等圖片效果

Android Glide載入圖片時轉換為圓形、圓角、毛玻璃等圖片效果

Android Glide載入圖片時轉換為圓形、圓角、毛玻璃等圖片效果

附錄1簡單介紹了Android開源的圖片載入框架。在實際的開發中,雖然Glide解決了快速載入圖片的問題,但還有一個問題懸而未決:比如使用者的頭像,往往使用者的頭像是從伺服器端讀出的一個普通矩形圖片,但是現在的設計一般要求在APP端的使用者頭像顯示成圓形頭像,那麼此時雖然Glide可以載入,但加載出來的是一個矩形,如果要Glide在載入過程中就把矩形圖轉換成圓形的,則需要在Glide之上引入一個開源專案:glide-transformations
glide-transformations在github上的專案主頁是:

https://github.com/wasabeef/glide-transformations 
寫一個例子說明。

  1. package zhangphil.app;  
  2. import android.support.v7.app.AppCompatActivity;  
  3. import android.os.Bundle;  
  4. import android.widget.ImageView;  
  5. import com.bumptech.glide.Glide;  
  6. import jp.wasabeef.glide.transformations.BlurTransformation;  
  7. import
     jp.wasabeef.glide.transformations.CropCircleTransformation;  
  8. import jp.wasabeef.glide.transformations.RoundedCornersTransformation;  
  9. publicclass MainActivity extends AppCompatActivity {  
  10.     //我csdn部落格頭像
  11.     String url = "http://avatar.csdn.net/9/7/A/1_zhangphil.jpg";  
  12.     @Override
  13.     protectedvoid onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.activity_main);  
  16.         //原圖,是我部落格的頭像
  17.         ImageView image1 = (ImageView) findViewById(R.id.image1);  
  18.         Glide.with(this).load(url).crossFade(1000).into(image1);  
  19.         //原圖 -> 圓圖
  20.         ImageView image2 = (ImageView) findViewById(R.id.image2);  
  21.         Glide.with(this).load(url).bitmapTransform(new CropCircleTransformation(this)).crossFade(1000).into(image2);  
  22.         //原圖的毛玻璃、高斯模糊效果
  23.         ImageView image3 = (ImageView) findViewById(R.id.image3);  
  24.         Glide.with(this).load(url).bitmapTransform(new BlurTransformation(this25)).crossFade(1000).into(image3);  
  25.         //原圖基礎上覆合變換成圓圖 +毛玻璃(高斯模糊)
  26.         ImageView image4 = (ImageView) findViewById(R.id.image4);  
  27.         Glide.with(this).load(url).bitmapTransform(new BlurTransformation(this25), new CropCircleTransformation(this)).crossFade(1000).into(image4);  
  28.         //原圖處理成圓角,如果是四周都是圓角則是RoundedCornersTransformation.CornerType.ALL
  29.         ImageView image5 = (ImageView) findViewById(R.id.image5);  
  30.         Glide.with(this).load(url).bitmapTransform(new RoundedCornersTransformation(this300, RoundedCornersTransformation.CornerType.BOTTOM)).crossFade(1000).into(image5);  
  31.     }  
  32. }  

佈局則比較簡單,是一個垂直方向的線性佈局佈局了5個ImageView,不再贅述。

程式碼執行結果。

相關推薦

Android Glide載入圖片轉換圓形圓角毛玻璃圖片效果

Android Glide載入圖片時轉換為圓形、圓角、毛玻璃等圖片效果 附錄1簡單介紹了Android開源的圖片載入框架。在實際的開發中,雖然Glide解決了快速載入圖片的問題,但還有一個問題懸而未決:比如使用者的頭像,往往使用者的頭像是從伺服器端讀出的一個普通矩形圖片

Android Glide 載入圖片

0.借鑑文章地址:http://blog.csdn.net/zivensonice/article/details/51835802 和 http://www.cnblogs.com/zhaoyanjun/p/5404162.html 1.導包:compile 'com.github.bumptech.gl

android glide載入base64圖片

1,直接上程式碼 public static boolean isBase64Img(String imgurl){ if(!TextUtils.isEmpty(imgurl)&&(imgurl.startsWith("data:image/png;

Android Glide載入圖片自動適應寬度

因為android的imgeview的scaletype都沒有可以在不改變原圖片比例的情況下自適應寬度的種類。所以用glide載入圖片的時候想要自適應寬度需要自己做點處理。 主要的思路就是在獲取到圖片之後,獲得圖片的寬dw和高dh,然後根據imageview的

Android圖片格式轉換JPG

在做人臉識別專案中,首先需要註冊人臉,目前程式要求在指定的資料夾存入檔案格式為JPG的圖片即完成人臉註冊。使用中,部分使用者對JPG格式理解不深,誤以為只要以“.JPEG”或者“.jpg”結尾的圖片就是JPG格式,甚至有使用者還特意把“張三 .png”改成“張三.jpg

DataContractJsonSerializer序列化時間類型轉換UTC溢出問題

設置 arr AD toa C# exception default AR AC 問題描述 如下一個實體類,含有非空時間類型屬性,默認是C#的最小時間,在使用DataContractJsonSerializer將該類對象序列化成JSON時,拋出異常信息:System.Run

Android實現BMP和PNG轉換JPEG格式

專案需求,需要把BMP24位的圖片轉換成jpeg的格式,在網上查詢了一些不同格式圖片的基本知識,加以總結,實現了一個簡單的Demo程式,先貼程式碼,然後再進行理解 picSwitcher.java檔案: package com.example.bmptojpeg; import ja

圖片路徑轉換圖片的base64格式

// 圖片轉化成base64字串 public static String GetImageStr(String imgFile) throws Exception {// 將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理 InputStream in = null

原生demo:上傳圖片-File轉換Image,File轉換canvas,canvas轉換圖片

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style type="text/css">

vue中圖片轉換base64上傳預覽刪除

<template> <div class="com-upload-img"> <div class="img_group"> <div class="img_box" v-if="al

在故事板中載入 nib IBOutlet nil

故事板是在 iOS 5 開始出現的,在此之前我們使用的是 nib/xib。一個故事板支援多個 ViewController,同時可以在這些 ViewController 中進行連線(segue)。但是隨著工程中 ViewController 的增加,故事板中 ViewController

android glide載入原圖顯示

final ViewGroup.LayoutParams lp = topicContentHolder.img.getLayoutParams();Glide.with(context) .load(subBeanList.get(position).im

協調世界轉換GPS周秒(轉載)

void UTC2GPS(int year, int month, int day, int hour, int minute, double second, int *weekNo, double *secondOfweek) {  /*****協調世界時轉換為GPS的

Android 將.sql格式檔案轉換.db格式資料庫檔案

有些時候,我們的android應用程式需要用到外部的資料庫檔案。我們也清楚,適合於android平臺使用的或許是.db格式的資料庫檔案了。 下面說下如何將.sql格式的資料庫檔案利用Navicat Lite得到.db格式檔案。 步驟如下: 下載安裝Nav

Unity www獲取的圖片如何轉換sprite

通過Texture2D tex = www.texture的方法雖然編譯不會報錯,但是無法轉換。可以通過 Texture2D tex = new Texture2D(100, 100); www.LoadImageIntoTexture(tex); Sprite spri

使用python將圖片格式轉換ico格式

因為python打包的時候需要用到ico圖片格式,網上看好的圖片又沒有ico,於是自己尋找了一下python轉換圖片格式的方法,徹底解決這個問題,以後就可以自己輕鬆實現轉化了,程式碼如下: """ A

Android studio 的快捷鍵轉換eclipse的快捷鍵

1.開啟file 2.點選setting 3.點選keymap 4.keymaps選項框中選擇Eclipse,然後copy 再點選應用。 最後需要注意的是Parameter Info 這

順序棧實現將十進位制整數轉換r(2816)進位制數

參考程式碼1: /順序棧結構利用陣列實現—引數由指標傳遞/ #include<stdlib.h> #include<stdio.h> #include<stddef.h> #define MAXSIZE 50 typedef char ElemTyp

Js中把JSON字串轉換JSON物件(eval()new Function())

在我們利用js操作json資料時一般會用到eval進行資料轉換了,但有些朋友還喜歡使用function來轉換,下面我就給大家總結一下具體例子。 在JS中將JSON的字串解析成JSON資料格式,一般有兩種方式: 1.一種為使用eval()函式。 2. 使用Function物

C#中如何把時間轉換季度取季度第一天時間取值問題雜燴

把時間轉換為季度: 第一種(驗證過,正確): /// <summary>         /// 傳入月份,得到季度數         /// </summary>