国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android使用glide加載gif動畫設置播放次數

2019-12-12 04:28:53
字體:
來源:轉載
供稿:網友

在使用glide加載gif動畫,有時需要設置播放的次數,然后播放玩一次或者幾次之后,需要在播放完做一些其他的操作,直接看代碼:

Glide.with(this)        .load(R.drawable.xiaoguo)        .diskCacheStrategy(DiskCacheStrategy.SOURCE)        .listener(new RequestListener<Integer, GlideDrawable>() {          @Override          public boolean onException(Exception arg0, Integer arg1,              Target<GlideDrawable> arg2, boolean arg3) {            return false;          }          @Override          public boolean onResourceReady(GlideDrawable resource,              Integer model, Target<GlideDrawable> target,              boolean isFromMemoryCache, boolean isFirstResource) {            // 計算動畫時長            GifDrawable drawable = (GifDrawable) resource;            GifDecoder decoder = drawable.getDecoder();            for (int i = 0; i < drawable.getFrameCount(); i++) {              duration += decoder.getDelay(i);            }            //發送延時消息,通知動畫結束            handler.sendEmptyMessageDelayed(MESSAGE_SUCCESS,                duration);            return false;          }        }) //僅僅加載一次gif動畫        .into(new GlideDrawableImageViewTarget(imageview, 1));

glide簡單加載動畫用法:

復制代碼 代碼如下:
Glide.with(MainActivity.this).load(url).asGif().into(imageView); 

如果添加.asGif(),這樣的話就只能加載gif文件,如果不加,既可以加載圖片也可以加載.gif。

解決加載gif文件非常慢的情況:

為其添加緩存策略

復制代碼 代碼如下:
Glide.with(MainActivity.this).load(url).asGif().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(imageView); 

其中緩存策略可以為:Source及None,None及為不緩存,Source緩存原型.如果為ALL和Result就不行
DiskCacheStrategy.NONE 什么都不緩存
DiskCacheStrategy.SOURCE 僅僅只緩存原來的全分辨率的圖像。
DiskCacheStrategy.RESULT 僅僅緩存最終的圖像,即,降低分辨率后的(或者是轉換后的)
DiskCacheStrategy.ALL 緩存所有版本的圖像(默認行為)

設置gif播放次數:

這樣寫會報錯的:

Glide.with(MainActivity.this).load(url).asGif().into(new GlideDrawableImageViewTarget(imageview, 1));

設置播放次數和播放監聽的時候,不應加上.asGif()

Glide.with(MainActivity.this).load(url).into(new GlideDrawableImageViewTarget(imageview, 1));

new GlideDrawableImageViewTarget(imageview, 1),imageview是控件,1是播放次數

設置播放監聽:

添加listener()

listener(new RequestListener<Integer, GlideDrawable>() {          @Override//加載出錯          public boolean onException(Exception arg0, Integer arg1,              Target<GlideDrawable> arg2, boolean arg3) {            return false;          }          @Override//加載完成          public boolean onResourceReady(GlideDrawable resource,              Integer model, Target<GlideDrawable> target,              boolean isFromMemoryCache, boolean isFirstResource) {            // 計算動畫時長            GifDrawable drawable = (GifDrawable) resource;            GifDecoder decoder = drawable.getDecoder();            for (int i = 0; i < drawable.getFrameCount(); i++) {              duration += decoder.getDelay(i);            }            //發送延時消息,通知動畫結束            handler.sendEmptyMessageDelayed(MESSAGE_SUCCESS,                duration);            return false;          }        })

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永兴县| 长海县| 新郑市| 康定县| 宾川县| 齐齐哈尔市| 中山市| 榆中县| 遂昌县| 东辽县| 贺州市| 潜江市| 淳安县| 黑河市| 宣化县| 微山县| 青海省| 台北市| 沁阳市| 铜川市| 东台市| 嘉鱼县| 越西县| 瓮安县| 沧州市| 喀喇| 广宁县| 天峻县| 类乌齐县| 西盟| 东兰县| 长兴县| 融水| 奉节县| 天门市| 贵港市| 麻江县| 海南省| 双流县| 双流县| 龙海市|