Android中图片加载框架Glide的使用
来源:互联网 发布:免费家长控制软件 编辑:程序博客网 时间:2024/05/21 17:18
编写不易,如有转载,请声明出处: 梦回河口:http://blog.csdn.net/zxc514257857/article/details/71683700
Picasso和Glide图片加载框架的对比:
Google推荐的图片加载库Glide介绍 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html
关于Glide的优秀博客:
Android图片加载库:最全面解析Glide用法 http://www.jianshu.com/p/c3a5518b58b2
Glide使用详解 http://blog.csdn.net/shangmingchao/article/details/51125554
Glide 一个专注于平滑滚动的图片加载和缓存库 http://www.jianshu.com/p/4a3177b57949
Android图片加载框架最全解析 http://blog.csdn.net/guolin_blog/article/details/53759439?utm_source=tuicool&utm_medium=referral
Glide https://mrfu.me/2016/02/27/Glide_Getting_Started/
Demo展示图片
布局代码
// (layout)activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <ImageView android:id="@+id/imageView" android:layout_margin="10dp" android:layout_width="match_parent" android:layout_height="match_parent"/></RelativeLayout>----------------------------------------------------------------------------------------//(menu)main.xml<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/fromInternet" android:showAsAction="never" android:title="fromInternet"/> <item android:id="@+id/fromURL" android:showAsAction="never" android:title="fromURL"/> <item android:id="@+id/loadGif" android:showAsAction="never" android:title="loadGif"/> <item android:id="@+id/playMp4" android:showAsAction="never" android:title="playMp4"/> <item android:id="@+id/asBitmap" android:showAsAction="never" android:title="asBitmap"/> <item android:id="@+id/override" android:showAsAction="never" android:title="override"/> <item android:id="@+id/fallback" android:showAsAction="never" android:title="fallback"/> <item android:id="@+id/thumbnail" android:showAsAction="never" android:title="thumbnail"/> <item android:id="@+id/cache" android:showAsAction="never" android:title="cache"/></menu>
activity代码
注:不要忘了设置网络权限
<uses-permission android:name="android.permission.INTERNET"/>
添加Gradle依赖
compile 'com.github.bumptech.glide:glide:3.8.0'
import android.content.Context;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.Menu;import android.view.MenuItem;import android.widget.ImageView;import com.bumptech.glide.Glide;import com.bumptech.glide.load.engine.DiskCacheStrategy;import java.net.MalformedURLException;import java.net.URL;import static com.test.glidedemo.R.id.imageView;public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private Context mContext = MainActivity.this; private ImageView mImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView(){ mImageView = (ImageView) findViewById(imageView); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.fromInternet: // 加载网络图片 Glide.with(mContext) .load("http://img.noen.com.cn//2017/05/2e9d0d4fef0d68b.jpg") // 加载中的显示图片 .placeholder(R.mipmap.loading) // 加载错误时的显示图片 .centerCrop()// .fitCenter() .error(R.mipmap.error) .into(mImageView); break; case R.id.fromURL: // 通过Url获取图片 URL url = null; try { url = new URL("http://img.noen.com.cn//2017/05/afd9fb6fca62030.jpg"); } catch (MalformedURLException e) { e.printStackTrace(); } Glide.with(mContext) .load(url) .into(mImageView); // 还可以加载本地图片,加载应用资源,加载二进制流,加载Uri对象等// // 加载本地图片// File file = new File(getExternalCacheDir() + "/image.jpg");// Glide.with(this).load(file).into(imageView);//// // 加载应用资源// int resource = R.drawable.image;// Glide.with(this).load(resource).into(imageView);//// // 加载二进制流// byte[] image = getImageBytes();// Glide.with(this).load(image).into(imageView);//// // 加载Uri对象// Uri imageUri = getImageUri();// Glide.with(this).load(imageUri).into(imageView); break; case R.id.loadGif: //加载Gif图,Picasso无法加载 Glide.with(mContext) .load("http://s1.dwstatic.com/group1/M00/E9/72/7c70b26caff8a75476612b8e8c6d4310.gif") // 加载中的显示图片 .placeholder(R.mipmap.loading) // 加载错误时的显示图片 .error(R.mipmap.error) .into(mImageView); break; case R.id.playMp4: // 经测试,Glide不能加载mp4文件 Glide.with(mContext) .load(R.raw.a) // 加载中的显示图片 .placeholder(R.mipmap.loading) // 加载错误时的显示图片 .error(R.mipmap.error) .into(mImageView); break; case R.id.asBitmap: // 只允许加载静态图片 Glide.with(mContext) .load("http://s1.dwstatic.com/group1/M00/E9/72/7c70b26caff8a75476612b8e8c6d4310.gif") // 只允许加载静态图片 .asBitmap() // 只允许加载动态图片// .asGif() // 加载中的显示图片 .placeholder(R.mipmap.loading) // 加载错误时的显示图片 .error(R.mipmap.error) .into(mImageView); break; case R.id.override: // 裁剪图片 Glide.with(mContext) .load("http://img.noen.com.cn//2017/05/2e9d0d4fef0d68b.jpg")// .load("https://b-ssl.duitang.com/uploads/item/201703/12/20170312230505_cfya3.jpeg") // 只允许输入像素值 .override(80,80) // 加载中的显示图片 .placeholder(R.mipmap.loading) // 加载错误时的显示图片 .error(R.mipmap.error) .into(mImageView); break; case R.id.fallback: // 加载url为空指针的时候默认显示的图片 String picUrl = null; Glide.with(mContext) .load(picUrl) .placeholder(R.mipmap.loading) .error(R.mipmap.pic) .fallback( R.mipmap.pic) .centerCrop() .into(mImageView); break; case R.id.thumbnail: // 加载缩略图方式1:先加载原图尺寸的1/10,当加载完成后显示全图 Glide.with(mContext) .load("https://b-ssl.duitang.com/uploads/item/201605/09/20160509172416_aAFPC.jpeg") .placeholder(R.mipmap.loading) .error(R.mipmap.error) .fallback( R.mipmap.pic) .centerCrop() //淡入显示,注意:如果设置了这个,则必须要去掉asBitmap,crossFade(int duration)设置淡入显示持续时间 .crossFade() .thumbnail(0.1f) .into(mImageView);// // 加载缩略图方式2:以路径的方式加载缩略图,当加载完成后显示全图// DrawableRequestBuilder<Integer> thumbnailRequest = Glide// .with(this)// .load(R.mipmap.pic);//// Glide.with(mContext)// .load("https://b-ssl.duitang.com/uploads/item/201605/09/20160509172416_aAFPC.jpeg")// .placeholder(R.mipmap.loading)// .error(R.mipmap.error)// .fallback( R.mipmap.pic)// .centerCrop()// //淡入显示,注意:如果设置了这个,则必须要去掉asBitmap,crossFade(int duration)设置淡入显示持续时间// .crossFade()// .thumbnail(thumbnailRequest)// .into(mImageView); break; case R.id.cache: // 内存缓存 Glide.with(mContext) .load("https://b-ssl.duitang.com/uploads/item/201604/20/20160420173554_GtYFa.thumb.700_0.jpeg") .placeholder(R.mipmap.loading) .error(R.mipmap.error) .fallback( R.mipmap.pic) .centerCrop() //淡入显示,注意:如果设置了这个,则必须要去掉asBitmap,crossFade(int duration)设置淡入显示持续时间 .crossFade() //跳过内存缓存 .skipMemoryCache(true) //保存最终图片 .diskCacheStrategy(DiskCacheStrategy.RESULT)// DiskCacheStrategy.NONE:什么都不缓存// DiskCacheStrategy.SOURCE:仅缓存原图(全分辨率的图片)// DiskCacheStrategy.RESULT:仅缓存最终的图片,即修改了尺寸或者转换后的图片// DiskCacheStrategy.ALL:缓存所有版本的图片,默认模式 .thumbnail(0.1f) .into(mImageView); break; // 其他图片的高斯模糊、添加圆角、度灰、圆形图片等效果更同Picasso default: break; } return super.onOptionsItemSelected(item); }}
Demo下载请移步:http://download.csdn.net/detail/zxc514257857/9839992
———-因本人才疏学浅,如博客或Demo中有错误的地方请大家随意指出,与大家一起讨论,共同进步,谢谢!———-
- Android中图片加载框架Glide的使用
- android glide 图片加载框架使用
- Android图片加载Glide框架使用详解
- Android图片加载Glide框架使用详解
- Android图片加载框架Glide使用总结
- Android图片加载Glide框架使用详解
- Android图片加载框架Glide使用
- Android图片加载框架Glide使用总结
- Android图片加载Glide框架使用详解
- Android 图片加载框架Glide使用详解
- android Glide图片加载框架使用
- Android图片加载Glide框架使用详解
- Android图片加载框架Glide的基本使用
- Android图片加载框架Glide的使用解析
- Android--Glide图片加载框架的基本使用与介绍
- 39.Glide图片加载框架的使用
- 图片加载框架-Glide的使用
- 图片加载框架Glide的简单使用
- 以小见大:如何设计注册登录页?
- Android对话框
- ZOJ3962 计算一段时间数码管所需能量
- Hibernate级联
- JSON.parse()与eval()之间的区别
- Android中图片加载框架Glide的使用
- PHP 错误 和 日志 函数
- POJ 2739 Sum of Consecutive Prime Numbers
- python 合并拼接字符串
- 时间序列
- Kalman滤波算法解释与实现
- java中Statement详细用法。
- linux上电自动运行运用程序
- laravel5.1 子查询(Query_Builder)