自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

初識(shí)Facebook的強(qiáng)大Android圖片加載的框架:Fresco

開發(fā) 架構(gòu)
Fresco是facebook推出的一款強(qiáng)大的圖片加載的框架,這個(gè)框架出來(lái)一段時(shí)間了,前一段時(shí)間使用過(guò)了ImageLoader的框架,生命在于折騰,今天就來(lái)折騰一下Fresco這個(gè)強(qiáng)大的框架。

Fresco是facebook推出的一款強(qiáng)大的圖片加載的框架,這個(gè)框架出來(lái)一段時(shí)間了,前一段時(shí)間使用過(guò)了ImageLoader的框架,生命在于折騰,今天就來(lái)折騰一下Fresco這個(gè)強(qiáng)大的框架。

[[144454]]

1.配置環(huán)境

由于我用的是android studio所以這里就只是說(shuō)一下android studio下如何配置,在強(qiáng)大的gradle,只需要一句話搞定,gradle會(huì)幫你下載這個(gè)Fresco框架,gradle真好,可以自動(dòng)維護(hù)你項(xiàng)目中的框架

compile 'com.facebook.fresco:fresco:0.5.0+'

2.開始使用Fresco

因?yàn)槲疫@里加載的是一張網(wǎng)絡(luò)圖片,所以要獲得網(wǎng)絡(luò)權(quán)限

<uses-permission android:name="android.permission.INTERNET"/>

初始化Fresco,如果項(xiàng)目中多處用到Fresco,就直接在application中初始化,如果我只是寫著玩玩,直接放在activity中的setContentView()的前面就ok了

Fresco.initialize(context);

用人家的框架就要按照人家的要求來(lái)是不,所以控件名字,命名空間都要聽人家的

 

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  2.     xmlns:fresco="http://schemas.android.com/apk/res-auto" 
  3.     android:layout_width="match_parent" 
  4.     android:layout_height="match_parent"
  5.  
  6.     <com.facebook.drawee.view.SimpleDraweeView 
  7.         android:id="@+id/image_view" 
  8.         android:layout_width="300dp" 
  9.         android:layout_height="300dp" 
  10.         fresco:placeholderImage="@mipmap/ic_launcher"/> 
  11.  
  12. </LinearLayout> 

當(dāng)然你也可以不寫它的命名空間,用里面的屬性的時(shí)候加上去,不用就別給自己找麻煩了,直接干掉給控件uri就ok了

Uri uri = Uri.parse("http://pic1.nipic.com/2008-09-08/200898163242920_2.jpg");
        imageView.setImageURI(uri);

ok,剩下的圖片下載,緩存,圖片移除就交給Fresco了,是不是很強(qiáng)大,但這里有一個(gè)問(wèn)題,你的控件的大小必須確定,不能想以前直接使用wrap_content,當(dāng)然你也可以設(shè)置寬高中的一個(gè)值,但是要設(shè)定寬高比

imageView.setAspectRatio(1.0f);

當(dāng)然上面說(shuō)到它強(qiáng)大了,強(qiáng)大就不止只是加載網(wǎng)絡(luò)圖片吧,它本身也支持本地,Content Provider,asset,res的圖片

本地:file:// Content provider:content://  asset:  asset://  res: res://,就是讓你拼一個(gè)uri

當(dāng)然上面提到的SimpleDraweeView只是Drawee其中的控件,沒有什么很特別的需求使用它就夠了,下面貼一下它里面的一些屬性,方便食用的時(shí)候查找

  1. <com.facebook.drawee.view.SimpleDraweeView 
  2.     android:id="@+id/image_view" 
  3.     android:layout_width="300dp" 
  4.     android:layout_height="300dp" 
  5.     fresco:fadeDuration="300" 
  6.     fresco:actualImageScaleType="focusCrop" 
  7.     fresco:placeholderImage="@color/wait_color" 
  8.     fresco:placeholderImageScaleType="fitCenter" 
  9.     fresco:failureImage="@drawable/error" 
  10.     fresco:failureImageScaleType="centerInside" 
  11.     fresco:retryImage="@drawable/retrying" 
  12.     fresco:retryImageScaleType="centerCrop" 
  13.     fresco:progressBarImage="@drawable/progress_bar" 
  14.     fresco:progressBarImageScaleType="centerInside" 
  15.     fresco:progressBarAutoRotateInterval="1000" 
  16.     fresco:backgroundImage="@color/blue" 
  17.     fresco:overlayImage="@drawable/watermark" 
  18.     fresco:pressedStateOverlayImage="@color/red" 
  19.     fresco:roundAsCircle="false" 
  20.     fresco:roundedCornerRadius="1dp" 
  21.     fresco:roundTopLeft="true" 
  22.     fresco:roundTopRight="false" 
  23.     fresco:roundBottomLeft="false" 
  24.     fresco:roundBottomRight="true" 
  25.     fresco:roundWithOverlayColor="@color/corner_color" 
  26.     fresco:roundingBorderWidth="2dp" 
  27.     fresco:roundingBorderColor="@color/border_color" 
  28.   /> 

簡(jiǎn)單介紹一下上面的屬性:

placeholderImage就是所謂的展位圖啦,在圖片沒有加載出來(lái)之前你看到的就是它

failureIamge看到名字就知道是什么了,圖片加載失敗時(shí)顯示的圖片就是它了

retryImage圖片加載失敗時(shí)顯示,提示用戶點(diǎn)擊重新加載,重復(fù)加載4次還是沒有加載出來(lái)的時(shí)候才會(huì)顯示failureImage的圖片

progressBarImage進(jìn)度條圖片

backgroundImage背景圖片,這里的背景圖片首先被繪制

overlayImage設(shè)置疊加圖,在xml中只能設(shè)置一張疊加圖片,如果需要多張圖片的話,需要在java代碼中設(shè)置哦

pressedStateOverlayImage設(shè)置點(diǎn)擊狀態(tài)下的疊加圖,此疊加圖不能縮放

ImageScaleType這個(gè)就是各種各樣的圖片縮放樣式了,center,centerCrop,fouseCrop,centerInside,fitCenter,fitStart,fitEnd,fitXY

剩下的就是對(duì)圓角的處理了…

責(zé)任編輯:王雪燕 來(lái)源: 子墨博客
相關(guān)推薦

2021-04-27 15:30:54

鴻蒙HarmonyOS應(yīng)用

2019-03-12 15:17:42

Facebook社交網(wǎng)絡(luò)互聯(lián)網(wǎng)

2019-09-09 09:05:59

圖片框架懶加載

2016-12-02 20:43:34

Android動(dòng)態(tài)加載DL框架

2022-09-16 11:23:59

Python框架Celery

2011-03-10 10:09:01

FacebookLAMP

2010-03-04 16:03:43

Android服務(wù)

2015-09-06 08:57:07

BootstrapCSS框架

2010-02-24 17:58:28

Python 測(cè)試框架

2023-10-22 20:20:37

FiberGo

2013-06-27 11:16:27

Android異步加載

2017-11-08 14:34:20

圖片fresco程序員

2014-08-01 10:20:05

2021-04-20 08:49:38

AndroidKotlinColi

2020-07-15 08:06:04

Node.js框架開發(fā)

2024-02-27 08:25:52

LiteFlow代碼語(yǔ)法

2015-06-11 10:12:26

Android圖片加載緩存

2012-06-05 10:22:45

jQuery

2010-03-05 09:19:54

Android系統(tǒng)

2010-03-02 14:04:44

Android手機(jī)系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)