IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 使用Android Glide技术实现图片加载和播放视频 -> 正文阅读

[移动开发]使用Android Glide技术实现图片加载和播放视频

?

Glide特点

使用简单
可配置度高,自适应程度高
支持常见图片格式 Jpg png gif webp
支持多种数据源 网络、本地、资源、Assets 等
高效缓存策略 支持Memory和Disk图片缓存 默认Bitmap格式采用 - RGB_565内存使用至少减少一半
生命周期集成 根据Activity/Fragment生命周期自动管理请求
高效处理Bitmap 使用Bitmap Pool使Bitmap复用,主动调用recycle回收需要回收的Bitmap,减小系统回收压力

本文主要说明用此技术实现图片加载和播放视频

1.在listview或者recycleView中使用

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (null == convertView) {
            //.....
        }
        Glide
            .with(context)
            .load(imageUrls[position])
            .into(holder.imageView);
        return convertView;
    }

recycleView中可以在Adapter的onBindViewHolder方法中使用。

建议with()传参的时候传递Activity 和 Fragment给Glide,而不是Context。将Activity/Fragment作为with()参数的好处是:图片加载会和Activity/Fragment的生命周期保持一致,比如Paused状态在暂停加载,在Resumed的时候又自动重新加载。

2.设置加载网络时等待的

Glide
    .with(context)
    .load(UsageExampleListViewAdapter.eatFoodyImages[0])
    .placeholder(R.mipmap.ic_launcher) // can also be a drawable
    .into(imageViewPlaceholder);

3.设置加载失败后的图片显示

Glide
    .with(context)
    .load("http://futurestud.io/non_existing_image.png")
    .error(R.mipmap.future_studio_launcher) // will be displayed if the image cannot be loaded
    .into(imageViewError);

4.设置图片的缩放

//使用centerCrop是利用图片图填充ImageView设置的大小,如果ImageView的
//Height是match_parent则图片就会被拉伸填充
Glide.with(MainActivity.this)
                    .load(args[position])
                    .centerCrop()
                    .into(holder.imageView);
//使用fitCenter即缩放图像让图像都测量出来等于或小于 ImageView 的边界范围
//该图像将会完全显示,但可能不会填满整个 ImageView。
Glide.with(MainActivity.this)
                    .load(args[position])
                    .fitCenter()
                    .into(holder.imageView);

5.加载gif动画

Glide  
    .with( context )
    .load( gifUrl )
    .asGif() //判断加载的url资源是否为gif格式的资源
    .error( R.drawable.full_cake )
    .into( imageViewGif );

6.显示本地视频

String filePath = "/storage/emulated/0/Pictures/example_video.mp4";
Glide  
    .with( context )
    .load( Uri.fromFile( new File( filePath ) ) )
    .into( imageViewGifAsBitmap );

7.设置glide的缓存策略

Glide  
    .with( context )
    .load( Images[0] )
    .skipMemoryCache( true ) //跳过内存缓存
    .into( imageViewInternet );
Glide  
    .with( context )
    .load( images[0] )
    .diskCacheStrategy( DiskCacheStrategy.NONE ) //跳过硬盘缓存
    .into( imageViewInternet );
DiskCacheStrategy.NONE 什么都不缓存
DiskCacheStrategy.SOURCE 仅仅只缓存原来的全分辨率的图像
DiskCacheStrategy.RESULT 仅仅缓存最终的图像,即降低分辨率后的(或者是转换后的)
DiskCacheStrategy.ALL 缓存所有版本的图像(默认行为)

8.不将加载的资源放入ImageView而是获取资源的Bitmap对象:

//括号中的300,600代表宽和高但是未有作用
SimpleTarget target = new SimpleTarget<Bitmap>(300,600) {
                @Override
                public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
                    //在这里对返回的bitmap进行处理
                }
            };
            Glide.with(MainActivity.this)
                    .load(args[position])
                    .asBitmap()
                    .into(target);

注:在列表中使用gilde的时候,会出现图片变形的情况,当刷新的时候才会正常显示,这个问题就是因为动画加载的过程中图片还没有下载下来导致的,这个时候把动画给禁止了就可以了,也可以把加载失败时候的图片给禁止掉,这样就可以直接加载出图片了,但是图片一定要可以下载下来.
?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 12:56:35  更:2021-12-13 12:59:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:56:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码