引入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. ReactiveCocoa代码实践之-更多思考
  2. 【leetcode】394. Decode String
  3. leetcode 378. Kth Smallest Element in a Sorted Matrix
  4. Android中WebView加载sdcard中的html时提示:ERR_FILE_NOT_FOUND和ERR_ACCESS_DENIED
  5. Linux——入门基本命令
  6. leetcode 606. Construct String from Binary Tree | 606. 根据二叉树创建字符串
  7. 5.2jquery案例2
  8. java int 传引用吗_Java的参数传递是「值传递」还是「引用传递」?
  9. 360浏览器急速模式_关于规范电子税务局浏览器要求及设置的通知
  10. jmap简单实用示例
  11. 第一章 Javscript的数据类型
  12. 考试倒计时,计算机二级重难点汇总【39套历年考题】
  13. 快速集成Android实现下拉刷新上拉加载更多
  14. signature=946b61359fb7b919b57e636da83bf538,X-ray tube.
  15. 许三多买了中石油--暴笑股民语录许三多
  16. 用ESP8266连接 0.96寸 OLED屏幕
  17. ecshop手机号码归属地
  18. STOP 0X00000018关机蓝屏重启问题
  19. 【CS231n】斯坦福大学李飞飞视觉识别课程笔记(四):图像分类笔记(上)
  20. [机器学习-原理与实践]逻辑回归(LogisticRegression)多分类(OvR, OvO, MvM)

热门文章

  1. 量化交易入门阶段——欧奈尔的CANSLIM模型(N 新产品、新管理层和股价创新高)
  2. (2021年)is not a supported wheel on this platform解决方案
  3. BDTC 2017丨探索大数据在医疗行业的应用实践
  4. const的作用和用法
  5. Csharp日常笔记
  6. 飞机大战实现--c++
  7. wpf 悬浮窗口的实现
  8. 微信公众号多域名回调系统1.0发布
  9. 人脸识别之facenet代码实现
  10. Opencv识别车牌