android glide的架構使用

來源:互聯網
上載者:User

標籤:位元影像   最簡   port   animation   顯示   ade   第三方   launch   告訴   

在android中,可能需要用來從網上擷取圖片的需求,那麼這個功能用第三方架構是最好的,因為第三方架構為我們封裝了很多的操作,比如glide架構,可以非同步載入圖片,並且可以設定緩衝方式和縮圖等一系列功能,下邊就介紹下怎麼使用。

首先添加gradle:

compile ‘com.github.bumptech.glide:glide:3.7.0‘

添加對應的許可權,訪問網路和訪問本機存放區:

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

最簡單的使用的方法:

Glide    .with(this)    .load("http://inthecheesefactory.com/uploads/source/nestedfragment/fragments.png")    .into(imageView);

glide with的介紹:

  1. with(Context context). 使用Application上下文,Glide請求將不受Activity/Fragment生命週期控制。
  2. with(Activity activity).使用Activity作為上下文,Glide的請求會受到Activity生命週期控制。
  3. with(FragmentActivity activity).Glide的請求會受到FragmentActivity生命週期控制。
  4. with(android.app.Fragment fragment).Glide的請求會受到Fragment 生命週期控制。
  5. with(android.support.v4.app.Fragment fragment).Glide的請求會受到Fragment生命週期控制。
設定佔位圖和動畫

在圖片過大或者網上太慢時,可以設定為映像設定一個佔位圖,在映像載入出來之前先顯示佔位圖設定佔位圖的方式
還可以設定在映像載入失敗時顯示的映像

Glide.with(this).load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg")        .placeholder(R.drawable.ic_launcher) //設定佔位圖,在載入之前顯示        .error(R.drawable.icon) //在映像載入失敗時顯示        .into(image);

在載入映像時,還可以設定映像顯示的動畫:

Glide.with(this).load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg")        .placeholder(R.drawable.ic_launcher)        .error(R.drawable.icon)        .crossFade() //設定顯示動畫,        .into(image);
crossFade()有幾種重載的方法
crossFade(int duration):設定時間
crossFade(Animation animation, int duration):設定自訂的動畫和時間
crossFade(int animationId, int duration): 載入動畫資源和時間  縮圖glide也可以設定縮圖,即先載入縮圖,然後再載入原圖:
Glide      .with( context )    .load( UsageExampleGifAndVideos.gifUrl )    .thumbnail( 0.1f )    .into( imageView2 );
緩衝

我們都知道映像的處理和顯示在Android中是最耗費記憶體的,很容易引起OOM的問題,一般在影像處理和顯示時,都會使用緩衝策略,記憶體緩衝或硬碟緩衝,在Glide中也提供了不同的緩衝策略,預設的情況下會將顯示的映像進行記憶體緩衝,也可以設定不使用記憶體緩衝,調用方法skipMemoryCache(true),就告訴Glide我們不打算使用記憶體緩衝,預設是使用記憶體緩衝的

Glide.with(this)        .load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg")        .skipMemoryCache(true)        .into(image);

Glide同時也提供了硬碟緩衝,硬碟緩衝的策略可以通過方法diskCacheStrategy()來設定

Glide.with(this)        .load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg")        .diskCacheStrategy(DiskCacheStrategy.SOURCE) //不使用硬碟緩衝        .into(image);
硬碟緩衝策略
DiskCacheStrategy.NONE: 不使用硬碟緩衝
DiskCacheStrategy.SOURCE: 將原始映像緩衝在硬碟中
DiskCacheStrategy.RESULT: 將顯示出來大小的映像緩衝在硬碟(預設緩衝策略)
DiskCacheStrategy.ALL: 顯示的映像和原始映像都會緩衝

 

android glide的架構使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.