Android Glide 图片加载
2015-11-19 14:55
555 查看
《Android图片加载与缓存开源框架:Android Glide》
Android Glide是一个开源的图片加载和缓存处理的第三方框架。和Android的Picasso库类似,个人感觉比Android Picasso好用。Android Glide使自身内部已经实现了缓存策略,使得开发者摆脱Android图片加载的琐碎事务,专注逻辑业务的代码。Android Glide使用便利,短短几行简单明晰的代码,即可完成大多数图片从网络(或者本地)加载、显示的功能需求。
使用Android Glide,需要先下载Android Glide的库,Android Glide在github上的项目主页:
https://github.com/bumptech/glide 。
实际的项目使用只需要到Glide的releases页面把jar包下载后导入到本地的libs里面即可直接使用。Glide的releases的页面地址:https://github.com/bumptech/glide/releases ,在此页面找到最新的jar包,下载后放到自己项目的libs中,比如glide
3.6.0库的jar包下载地址:https://github.com/bumptech/glide/releases/download/v3.6.0/glide-3.6.0.jar
接下来是在自己的项目中具体使用,现在给出一个具体的使用例子加以简单说明(通过网络加载图片然后在ImageView中显示出来):
Android Glide是一个开源的图片加载和缓存处理的第三方框架。和Android的Picasso库类似,个人感觉比Android Picasso好用。Android Glide使自身内部已经实现了缓存策略,使得开发者摆脱Android图片加载的琐碎事务,专注逻辑业务的代码。Android Glide使用便利,短短几行简单明晰的代码,即可完成大多数图片从网络(或者本地)加载、显示的功能需求。
使用Android Glide,需要先下载Android Glide的库,Android Glide在github上的项目主页:
https://github.com/bumptech/glide 。
实际的项目使用只需要到Glide的releases页面把jar包下载后导入到本地的libs里面即可直接使用。Glide的releases的页面地址:https://github.com/bumptech/glide/releases ,在此页面找到最新的jar包,下载后放到自己项目的libs中,比如glide
3.6.0库的jar包下载地址:https://github.com/bumptech/glide/releases/download/v3.6.0/glide-3.6.0.jar
接下来是在自己的项目中具体使用,现在给出一个具体的使用例子加以简单说明(通过网络加载图片然后在ImageView中显示出来):
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
package com.example.glide; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import com.bumptech.glide.Glide; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.ImageView; public class MainActivity extends Activity { // 将从此URL加载网络图片。 private String img_url = "http://avatar.csdn.net/9/7/A/1_zhangphil.jpg"; private Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ImageView image=(ImageView) findViewById(R.id.imageView); Glide.with(this).load(img_url).crossFade(1000).into(image); } private Bitmap loadBitmap(String url){ Bitmap bmp = null; try { byte[] imageBytes = loadRawDataFromURL(url); bmp = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length); } catch (Exception e) { e.printStackTrace(); } return bmp; } public static byte[] loadRawDataFromURL(String u) throws Exception { URL url = new URL(u); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayOutputStream baos = new ByteArrayOutputStream(); final int BUFFER_SIZE = 2048; final int EOF = -1; int c; byte[] buf = new byte[BUFFER_SIZE]; while (true) { c = bis.read(buf); if (c == EOF) break; baos.write(buf, 0, c); } conn.disconnect(); is.close(); byte[] data = baos.toByteArray(); baos.flush(); return data; } }
相关文章推荐
- FaceBook推出的Android图片加载库-Fresco
- Android中asset文件夹和raw文件夹区别
- Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用]
- Android界面View及ViewGroup
- Android学习笔记:如何设置ImageView中图片的显示方式
- Android工具类 — Volley的使用
- android Canvas中的clipRect、drawBitmap
- Android Activity启动模式详解
- 解决android SwipeRefreshLayout recyclerview 不能下拉
- Android Canvas 说明
- Android控件之CheckBox、RadioButton
- android定制 Launcher
- android 5.0 新特性
- Android音频系统之音频框架
- android四大组件之Service 播放音乐
- 【Android】长按连续触发事件的实现方法
- Android编程实现仿心跳动画效果的方法
- android录制声音写入文件
- 关于android应用的toolbar(actionbar)不能填满布局解决
- Android在SDCard创建目录_卸载应用同时删除工程创建的文件