Android图片加载框架Glide的基本用法介绍

简介

Glide是一款图片加载框架,可以在Android平台上以简单的方式加载和展示图片。

dependencies { compile 'com.github.bumptech.glide:glide:3.7.0' }

在清单文件中加入权限

<uses-permission android:name="android.permission.INTERNET" />

加载图片

http://sc.jb51.net/uploads/allimg/150709/14-150FZ94211O4.jpg

新建布局文件

activity_main.xml

<?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"> <Button android:id="@+id/load_image" android:layout_marginTop="10dp" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="加载图片"/> <ImageView android:layout_marginTop="10dp" android:id="@+id/image" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>

MainActivity.java

package com.zhoujian.glide; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.ImageView; import com.bumptech.glide.Glide; public class MainActivity extends AppCompatActivity { private Button mLoad_image; private ImageView mImage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); clickEvent(); } private void initViews() { mLoad_image = (Button)findViewById(R.id.load_image); mImage = (ImageView)findViewById(R.id.image); } private void clickEvent() { mLoad_image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String url= "http://sc.jb51.net/uploads/allimg/150709/14-150FZ94211O4.jpg"; Glide.with(MainActivity.this).load(url).into(mImage); } }); } }

只要一行代码,就可以把图片加载进来

调用Glide.with()方法用于创建一个图片的实例。with方法可以接受Context、Activity和Fragment类型的参数。如果调用不在Activity中或者Fragment中,可以传入ApplicationContext。

Glide支持加载各种图片资源,包括网络图片、本地图片、应用资源、Uri对象等

// 加载本地图片 File file = new File(getExternalCacheDir() + "/demo.jpg"); Glide.with(this).load(file).into(imageView); // 加载应用资源 Glide.with(this).load(R.drawable.image).into(imageView); // 加载二进制流 byte[] image = getImageBytes(); Glide.with(this).load(image).into(imageView); // 加载Uri对象 Uri imageUri = getImageUri(); Glide.with(this).load(imageUri).into(imageView);

占位图

Glide.with(MainActivity.this) .load(url) .placeholder(R.mipmap.placeholder) .into(mImage);

异常占位图

//错误的图片地址 String url1 = "http://sc.net/uploads/allimg/150709/14-150FZ94211O4.jpg"; Glide.with(MainActivity.this) .load(url1) .placeholder(R.mipmap.placeholder)//加载占位图 .error(R.mipmap.error)//异常占位图 .into(mImage);

指定图片格式

Glide支持加载GIF图片的,而Picasso是不支持加载GIF图片的。

Glide内部会自动判断图片格式。比如这是一张GIF图片的URL地址:

复制代码 代码如下:
https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3396140532,1228025744&fm=23&gp=0.jpg

String url2 = "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3396140532,1228025744&fm=23&gp=0.jpg"; Glide.with(MainActivity.this) .load(url2) .placeholder(R.mipmap.placeholder)//加载占位图 .error(R.mipmap.error)//异常占位图 .into(mImage);

只允许加载静态图:asBitmap

String url2 = "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3396140532,1228025744&fm=23&gp=0.jpg"; Glide.with(MainActivity.this) .load(url2) .asBitmap()//只允许加载静态图 .placeholder(R.mipmap.placeholder)//加载占位图 .error(R.mipmap.error)//异常占位图 .into(mImage);

如果传入的是一个gif动态图,只会显示第一帧图片

只允许加载动态图:.asGif()

String url2 = "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3396140532,1228025744&fm=23&gp=0.jpg"; Glide.with(MainActivity.this) .load(url2) .asGif()//只允许加载动态图 .placeholder(R.mipmap.placeholder)//加载占位图 .error(R.mipmap.error)//异常占位图 .into(mImage);

指定图片大小

使用Glide,我们就不用担心图片内存浪费,甚至是内存溢出的问题。
因为Glide从来都不会直接将图片的完整尺寸全部加载到内存中,而是用多少加载多少。Glide会自动判断ImageView的大小,然后只将这么大的图片像素加载到内存当中。

当然我们也可以指定图片的固定大小

当指定图片大小的时候,要把ImageView的宽高该为包裹内容

Glide.with(MainActivity.this) .load(url) .asBitmap()//只允许加载动态图 .placeholder(R.mipmap.placeholder)//加载占位图 .error(R.mipmap.error)//异常占位图 .override(400, 300) .into(mImage);

加载效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-09-29 06:45:35

Android图片加载框架Glide的基本用法介绍的相关文章

设计简单的Android图片加载框架_Android

目前Android 发展至今优秀的图片加载框架太多,例如: Volley ,Picasso,Imageloader,Glide等等.但是作为程序猿,懂得其中的实现原理还是相当重要的,只有懂得才能更好地使用.于是乎,今天我就简单设计一个网络加载图片框架.主要就是熟悉图片的网络加载机制. 一般来说,一个优秀的 图片加载框架(ImageLoader) 应该具备如下功能: 图片压缩 内存缓存 磁盘缓存 图片的同步加载 图片的异步加载 网络拉取 那我们就从以上几个方面进行介绍: 1.图片压缩(有效的降低O

设计简单的Android图片加载框架

目前Android 发展至今优秀的图片加载框架太多,例如: Volley ,Picasso,Imageloader,Glide等等.但是作为程序猿,懂得其中的实现原理还是相当重要的,只有懂得才能更好地使用.于是乎,今天我就简单设计一个网络加载图片框架.主要就是熟悉图片的网络加载机制. 一般来说,一个优秀的 图片加载框架(ImageLoader) 应该具备如下功能: 图片压缩 内存缓存 磁盘缓存 图片的同步加载 图片的异步加载 网络拉取 那我们就从以上几个方面进行介绍: 1.图片压缩(有效的降低O

android图片加载框架-android 最新的图片加载框架

问题描述 android 最新的图片加载框架 现在我的工程老报 OOM 想找一个最新的图片加载框架,最好是少报OOM 我原来用的是 universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar 这个 求各位大神给一个图片加载的框架 解决方案 android-query picasso-2.4.0 都可以

一起动手编写Android图片加载框架

开发一个简洁而实用的Android图片加载缓存框架,并在内存占用与加载图片所需时间这两个方面与主流图片加载框架之一Universal Image Loader做出比较,来帮助我们量化这个框架的性能.通过开发这个框架,我们可以进一步深入了解Android中的Bitmap操作.LruCache.LruDiskCache,让我们以后与Bitmap打交道能够更加得心应手.若对Bitmap的大小计算及inSampleSize计算还不太熟悉,请参考这里:高效加载Bitmap.由于个人水平有限,叙述中必然存在

Android图片加载利器之Picasso基本用法

今天开始我们来学习一下Picasso,计划包括以下几方面的内容: 图片加载利器之Picasso进阶 图片加载利器之Picasso源码解析 目前市场上比较流行的图片加载框架主要有UniversalImageLoader,Picasso,Glide,Fresco. 下面简单介绍一下这几个框架: UniversalImageLoader:这个可以说是非常非常经典的一个了,相信每个app的开发人员都使用过,只可惜作者已经停止该项目的维护了,所以不太推荐使用. Picasso:是Square公司出品的图片

android图片加载库Glide

什么是Glide? Glide是一个加载图片的库,作者是bumptech,它是在泰国举行的google 开发者论坛上google为我们介绍的,这个库被广泛的运用在google的开源项目中. Glide解决什么问题? Glide是一个非常成熟的图片加载库,他可以从多个源加载图片,如:网路,本地,Uri等,更重要的是他内部封装了非常好的缓存机制并且在处理图片的时候能保持一个低的内存消耗. Glide怎么使用? 在Glide的使用方面,它和Picasso的使用方法是比较相似的,并且他们的运行机制也有很

详细解释强力的图片加载框架 Glide的配置(顺便补充下CollapsingToolbarLayout的一些功能)

转载请注明出处:王亟亟的大牛之路 折腾了一天,单位里的网终于好了真是蛋疼,然后今天讲Glide(本来是准备昨天写的,唉) 理论性的介绍就直接从网上扣点来了,从头码字没啥意义,废话不多,开始! 理论性的东西可以看 http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html 这篇是Glide和Picasso的对比,分析的蛮不错的 我们来贴下今天的例子 上图中所有的图片都是异步下载的,虽然图片本身并不大,但是加载的还是很流

Android 常见的图片加载框架详细介绍_Android

Android 常见的图片加载框架 图片加载涉及到图片的缓存.图片的处理.图片的显示等.而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内存溢出等问题.很多软件厂家的通用做法就是借用第三方的框架进行图片加载. 开源框架的源码还是挺复杂的,但使用较为简单.大部分框架其实都差不多,配置稍微麻烦点,但是使用时一般只需要一行,显示方法一般会提供多个重载方法,支持不同需要.这样会减少很不必要的麻烦.同时,第三方框架的使用较为方便,这大大的减少了工作量.提高了开发效率.

Android图片加载缓存框架Glide_Android

Glide开源框架是Google推荐的图片加载和缓框架,其在Github上的开源地址是:https://github.com/bumptech/glide 当然一个Google推荐的框架肯定就是Volley啦. 目前Android主流开发工具是AndroidStudio,在AndroidStudio如何使用Glide,https://github.com/bumptech/glide上有详细的介绍说明. 因为刚换新工作不久,公司和的还是Eclipse,所以学习Glide我暂时还用的Eclipse