引入glide

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="get"android:onClick="loadImage"/><ImageViewandroid:id="@+id/image"android:layout_width="match_parent"android:layout_height="wrap_content" />
</LinearLayout>
public class TestIIActivity extends Activity{private ImageView imageView;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test2);imageView = (ImageView) findViewById(R.id.image);}public void loadImage(View View){String url="https://www.baidu.com/img/bd_logo1.png?where=super";Glide.with(this)/*在哪个页面显示*/.load(url)/*加载的网络图片地址*/.placeholder(R.drawable.loading2)/*预显示占位图*/.dontAnimate()/*不进行图片的拉伸*/.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)/*强制让图片原大小显示*/.into(imageView);/*在ImageView中显示*/}}

Glide中的占位符:
占位符的使用方法包括:
1.placeholder:正在请求图片的时候展示的图片
2.error:如果请求失败的时候展示的图片(如果没有设置,还是展示placeholder的占位符)
3.fakkback:如果请求的url/model为null的时候展示的图片(如果没有设置,还是展示placeholder的占位符)
override:指定加载图片的大
引入如图片的变换:
transform(new CircleCrop)//把图片变成圆形
rotote:旋转图片
roundedCorners:四个角统一指定
GranularRoundedCorners:四个角单独指定

如果使用的是ListView,可以直接在Adapter的getView方法中使用:

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

网络加载图片到ImageView中

Glide.with(context).load(imageUrl).into(imageView);

当加载网络图片时,由于加载过程中图片未能及时显示,此时可能需要设置等待时的图片, 通过placeHolder()方法:

Glide.with(context)
.load(imageUrl)
.placeholder(R.mipmap.ic_launcher)
.into(imageView);

当加载图片失败时,通过error(Drawable drawable)方法设置加载失败后的图片显示:

Glide.with(context)
.load(imageUrl)
.error(R.mipmap.ic_launcher)
.into(imageView);

图片的缩放

1)使用centerCrop是利用图片图填充ImageView设置的大小,如果ImageView的Height是match_parent则图片就会被拉伸填充

Glide.with(context)
.load(imageUrl)
.centerCrop()
.into(imageView);

2)使用fitCenter即缩放图像让图像都测量出来等于或小于 ImageView的边界范围,该图像将会完全显示,但可能不会填满整个ImageView。

Glide.with(context)
.load(imageUrl)
.fitCenter()
.into(imageView);

显示gif动画,asGif()判断是否是gif动画

Glide.with(context)
.load(imageUrl)
.asGif()
.into(imageView);

显示本地视频

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

设置图片显示效果(圆角、圆形、高斯模糊、蒙板、裁剪等等).bitmapTransform()

Glide.with(this).load(R.mipmap.ic_image_sample)//模糊.bitmapTransform(new BlurTransformation(this))//圆角.bitmapTransform(new RoundedCornersTransformation(this, 24, 0, RoundedCornersTransformation.CornerType.ALL))//遮盖.bitmapTransform(new MaskTransformation(this, R.mipmap.ic_launcher))//灰度.bitmapTransform(new GrayscaleTransformation(this))//圆形.bitmapTransform(new CropCircleTransformation(this)).into(mResultIv);

Android中的Glide相关推荐

  1. Android中的单例模式(java单例模式详解,Glide,EventBus,LayoutInfalter的源码单例模式详解)

    一.单例模式 (1)单例模式介绍和定义 ​ 大概意思是保证一个类在任何时候都只有一个实例在内存里,以static形式提供整个项目的访问.在Android系统中常用的地方有:创建一个SQLiteOpen ...

  2. 如何在Android中的ListView中延迟加载图像

    我正在使用ListView显示一些图像和与这些图像相关的标题. 我正在从互联网上获取图像. 有没有一种方法可以延迟加载图像,以便在显示文本时不会锁定UI并在下载图像时显示它们? 图像总数不固定. #1 ...

  3. 2020面试题合集之吊打面试官系列(一),Android中为什么需要Handler

    合并式:addAssetPath时加入所有插件和主工程的路径:由于AssetManager中加入了所有插件和主工程的路径,因此生成的Resource可以同时访问插件和主工程的资源.但是由于主工程和各个 ...

  4. Android中图片的裁剪与压缩

    文章目录 一.图片的剪裁 1.属性介绍 二.图片压缩 1.图片质量分类 2.图片默认质量 3.占用内存 4.图片的尺寸压缩或者拉伸 三.Bitmap压缩 1.质量压缩 2.采样率压缩 3.缩放法压缩 ...

  5. android新闻列表,Android中实现简单的新闻列表

    Android中实现简单的新闻列表 在刚开始写CSDN的时候,写过一篇 Android中通过ListView实现简单的新闻列表 最近看到有很多刚开始学习Android的同学需要源码.不好意思的是,那个 ...

  6. 【Framework】透视Android中的Handler

    准备对基于Android应用开发Framework层的内容进行学习回顾,学习一个新技术前我们一般都会灵魂三问:What-Why-How(是什么.为什么.怎么用).源码的学习一定要亲自去看,用IDE或者 ...

  7. 探究Bitmap在Android中的内存占用

    一.Bitmap的内存占用检测 Bitmap 一直以来都是 Android App 的内存消耗大户,很多 Java 甚至 native 内存问题的背后都是不当持有了大量大小很大的 Bitmap,我们可 ...

  8. Android中内存泄漏超级精炼详解

    一.前期基础知识储备 (1)什么是内存? JAVA是在JVM所虚拟出的内存环境中运行的,JVM的内存可分为三个区:堆(heap).栈(stack)和方法区(method). 栈(stack):是简单的 ...

  9. Android 泽宇Glide和Picasso框架之间的区别与应用

    Glide和Picasso是目前Android开发中很流行的图片加载库,Glide库和Picasso库也有极大的相似性,这篇文章就通过对比的方式描述一下这个两个功能强大的优秀库的使用. 一.简介: 1 ...

最新文章

  1. 谈谈java并发锁(重入锁、读写锁、公平锁)
  2. ThreadLocal的学习
  3. 计算机学院许斌副院长,马鞍山职业技术学院院长姚国成、马鞍山市卫校校长许斌一行来访我院...
  4. mysql数据库连接锁住_锁mysql方法
  5. windows模拟微信小程序_Windows 版微信新版本内测!小程序可以直接添加到电脑桌面了...
  6. servlet api.jar是干什么的?
  7. python编程入门----numpy不常见的小细节
  8. Github的README中插入图片,Github仓库项目主页显示图片
  9. 【零基础入门】 css学习笔记(5) 浮动
  10. vsftpd配置不同用户不同目录
  11. Android 自定义控件 Demo合集
  12. easyui filebox+ajaxfileupload实现异步上传
  13. 腾讯程序员与医生相恋,却被女方父母拆散,你们不能在一起
  14. DITHER 抖动算法(转载)
  15. 最值得关注的五款睡眠监护仪:Sense、梦加上榜
  16. oracle导出导入同义词,使用datapump 导出导入同义词
  17. c语言 获取 屏幕 像素坐标和颜色,在屏幕上获取颜色和绝对坐标,方便地选择像素...
  18. 微信小程序之-NBA赛程小程序开发
  19. 易用CAD看图软件怎么进行切换建筑图纸的三维导航模式?
  20. php不做手术会怎么样,薇娅做手术上热搜!这种病年轻人高发,有人治了三年还没治好...

热门文章

  1. 分享一款在线视频播放器:h-player
  2. Delphi线程类的使用(1)
  3. Delphi的多线程开发实例
  4. weblogic密码破解
  5. Going out on a limb:Joint Extraction of Entity Mentions and Relations without Dependency Trees【论文笔记】
  6. 反转字符串(Java实现)
  7. 迈卡名车茂品牌LOGO全新升级
  8. MYSQL数据库- 修改数据表名称、列名称
  9. docsify配置flowchart模块
  10. 苹果cms后台路径怎么修改