最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android使用glide加載gif動(dòng)畫設(shè)置播放次數(shù)

 更新時(shí)間:2020年07月29日 13:22:25   作者:xiao孟  
這篇文章主要為大家詳細(xì)介紹了Android使用glide加載gif動(dòng)畫設(shè)置播放次數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

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) {
      // 計(jì)算動(dòng)畫時(shí)長(zhǎng)
      GifDrawable drawable = (GifDrawable) resource;
      GifDecoder decoder = drawable.getDecoder();
      for (int i = 0; i < drawable.getFrameCount(); i++) {
       duration += decoder.getDelay(i);
      }
      //發(fā)送延時(shí)消息,通知?jiǎng)赢嫿Y(jié)束
      handler.sendEmptyMessageDelayed(MESSAGE_SUCCESS,
        duration);
      return false;
     }
    }) //僅僅加載一次gif動(dòng)畫
    .into(new GlideDrawableImageViewTarget(imageview, 1));

glide簡(jiǎn)單加載動(dòng)畫用法:

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

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

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

為其添加緩存策略

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

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

設(shè)置gif播放次數(shù):

這樣寫會(huì)報(bào)錯(cuò)的:

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

設(shè)置播放次數(shù)和播放監(jiān)聽的時(shí)候,不應(yīng)加上.asGif()

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

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

設(shè)置播放監(jiān)聽:

添加listener()

listener(new RequestListener<Integer, GlideDrawable>() {

     @Override//加載出錯(cuò)
     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) {
      // 計(jì)算動(dòng)畫時(shí)長(zhǎng)
      GifDrawable drawable = (GifDrawable) resource;
      GifDecoder decoder = drawable.getDecoder();
      for (int i = 0; i < drawable.getFrameCount(); i++) {
       duration += decoder.getDelay(i);
      }
      //發(fā)送延時(shí)消息,通知?jiǎng)赢嫿Y(jié)束
      handler.sendEmptyMessageDelayed(MESSAGE_SUCCESS,
        duration);
      return false;
     }
    })

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

武冈市| 昆明市| 和田县| 青州市| 绥德县| 萨嘎县| 手游| 恩施市| 卓尼县| 浪卡子县| 塔河县| 巴里| 旅游| 互助| 铜川市| 沙湾县| 思南县| 安吉县| 平乡县| 齐齐哈尔市| 阳曲县| 镇原县| 原阳县| 前郭尔| 易门县| 玉山县| 体育| 苍溪县| 鄂托克前旗| 治多县| 资兴市| 隆德县| 米泉市| 临桂县| 巫山县| 如皋市| 团风县| 温泉县| 高碑店市| 鄢陵县| 丹棱县|