//通过model获取到图片的url,将Url转换成bitmap对象;
  //设置不保存内存和硬盘缓存,
1 Glide.with(mContext).load(model.getVideoUrl()).asBitmap()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
if (null != resource) {
//holder.smallVideo_gl.setForeground(new BitmapDrawable(mContext.getResources(), resource));
holder.smallVideo_gl.setBackground(new BitmapDrawable(mContext.getResources(), resource));
}
}
});
 /****
*使用Glide加載URL圖片時有緩存
*/
public static void ImageNeedMerryWithUrl(Context context, String imagePath, ImageView imageView){
Glide.with(context).load(imagePath).into(imageView);
}
/****
*使用Glide加載本地圖片時有緩存
*/
public static void ImageNeedMerryWithId(Context context, int imageId, ImageView imageView){
Glide.with(context).load(imageId).into(imageView);
}
/****
*使用Glide加載圖片時不添加緩存
*/
public static void ImageNotMerry(Context context, String imagePath, ImageView imageView){
Glide.with(context).load(imagePath).diskCacheStrategy( DiskCacheStrategy.NONE ).skipMemoryCache(true).into(imageView);
}

项目开发中遇到使用Glide中的placeholder方法的进行设置占位图(在我们使用了CircleImageView自定义的圆形头像中加载图片)的效果;使用这个方法,会导致图片第一次加载的老是占位图,在ListView上下滑动后,才能正常显示。

(一)第一开始自己图省事,为了解决问题,并没有采用placeholder的方法,而是直接

holder.iv_homepage_dypost_head.setImageDrawable(context.getResources().getDrawable(R.mipmap.homg_ctf_touxiangdian));
Glide.with(context).load(dynamticModel.getHeadImgUrl()).error(R.mipmap.homg_ctf_touxiangdian).dontAnimate().into(holder.iv_homepage_dypost_head);
在加载图片之前,先代码设置一张图片。

(二)但是后来同事又遇到了这个问题,所以才想搜索解决这个问题:发现了http://www.jianshu.com/p/4a3177b57949/comments/902902这个楼主发表的帖子,发现了使用下面方法,就可以解决图片第一开始不显示的问题了。

Glide.with(cnt).load(headUrl)
.asBitmap()
.animate(R.anim.umeng_socialize_fade_in)//淡入动画效果
.placeholder(R.mipmap.homg_ctf_touxiangdian)
.error(R.mipmap.homg_ctf_touxiangdian)
.dontAnimate()
.into(holder.iv_head); 问题三:在ListView中使用Glide加载多张图片时,可能会出现卡顿的现象。
我们项目中使用的LoadListView来实现下拉加载;里面的方法监听是不是在滚动结束后加载图片
  @Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch(scrollState){
case AbsListView.OnScrollListener.SCROLL_STATE_IDLE://空闲状态
Glide.with(mContext).resumeRequests();//在停止滑动的情况下,请求加载图片
if (totalItemCount == lastVisibleItem){
if(canLoad) {
//Glide.with(mContext).pauseRequests();
if (!isLoading) {//不是正在加载
isLoading = true;
//加载更多
footerview.setVisibility(View.VISIBLE);
if (listener != null) {
listener.onLoad();
}
}
}/*else{
18 Glide.with(mContext).resumeRequests();
19 }*/
}
break;
case AbsListView.OnScrollListener.SCROLL_STATE_FLING://滚动状态
Glide.with(mContext).pauseRequests();//在滚动状态时,取消加载
break;
case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL://触摸后滚动
Glide.with(mContext).pauseRequests();
break;
}
}

问题:设置头像所在布局的模糊效果:使用Glide返回一个bitmap;设置模糊效果:会出现问题

                    Glide.with(context).load(userModel.getHEAD_IMAGE()).asBitmap().diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
if(null!=resource) {
//blur_bitmap = Blur.fastblur(MyInfoActivity.this,resource, 5);
//rl_head_bg.setBackground(new BitmapDrawable(getResources(), blur_bitmap)); //给图片
//rl_head_bg.setBackground(new BitmapDrawable(getResources(), resource)); //直接设置将获取到的bitmap展示给布局,图片显示是放大;但是没有模糊小效果
iv_head.setImageBitmap(resource);
}
}
});

暂时的解决方案:

Thread  myThread=new Thread(new Runnable() {
@Override
public void run() {
blur_bitmap = Blur.fastblur(MyHomePageActivity.this, ImageUtils.returnBit(imgHeaderUrl), );
runOnUiThread(new Runnable() {
@Override
public void run() {
rl_head_bg.setBackground(new BitmapDrawable(getResources(), blur_bitmap));
}
});
}
});
myThread.start();
/*try {
myThread.join();//是在子线程请求完成后;再设置头像布局背景;当时导致界面展示有点卡顿
} catch (InterruptedException e) {
e.printStackTrace();
}
rl_head_bg.setBackground(new BitmapDrawable(getResources(), blur_bitmap));
*/

Glide 加载图片的更多相关文章

  1. Android Glide加载图片时转换为圆形、圆角、毛玻璃等图片效果

     Android Glide加载图片时转换为圆形.圆角.毛玻璃等图片效果 附录1简单介绍了Android开源的图片加载框架.在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬 ...

  2. RoundedImageView使用吐槽心得(RoundedImageView与Glide加载图片,第一次加载无法圆角问题)

    最近使用的时候发现一个问题, RoundedImageView与Glide搭配使用的时候,第一次加载图片(内存中没有),后图片无法圆角,后来尝试各种改,最后想到了一个办法,就是让Glide加载图片的 ...

  3. Glide加载图片缓存库出现——You cannot start a load for a destroyed activity

    请记住一句话:不要再非主线程里面使用Glide加载图片,如果真的使用了,请把context参数换成getApplicationContext.

  4. Glide加载图片问题记录

    Glide加载图片相比于Picasso而言性能较好,又比Fresco轻巧,而且又支持加载gif动图,是Google 推荐.专注平滑的滚动.简单易用.可扩展的一款图片加载框架.但是使用时还是会遇到一些问 ...

  5. Glide加载图片的事例

    //获取图片的url String url = resultsEntity.getUrl(); //判断获取的图片是否存在 if (resultsEntity.getItemHeight() > ...

  6. Glide加载图片到自定义的圆形ImageView中不显示

    当使用自定义的圆形ImageView时,发现使用Glide加载并设置默认初始图片时,自定义的ImageView一直显示默认图片,无法更新到加载的图片. 使用下面代码可以解决这个问题 Glide.wit ...

  7. ListView或GridView的Adapter使用Glide加载图片异常

    报错信息为:You must not call setTag() on a view Glide is targeting 原因就是View使用setTag后导致Glide之前请求的标记被清除,强制转 ...

  8. Android中的Glide加载图片

    注意:在Android Studio的项目的build.gradle中添加: compile 'com.github.bumptech.glide:glide:3.6.1' 然后同步一下 目录: 使用 ...

  9. Android Glide 加载图片

    0.借鉴文章地址:http://blog.csdn.net/zivensonice/article/details/51835802 和 http://www.cnblogs.com/zhaoyanj ...

随机推荐

  1. [转载]《民航科技》2012年4月专家论坛:程延松《关于中国民航SWIM框架及技术实现探讨》

    专家介绍:程延松,现任成都民航空管发展有限公司总经理,理学博士,高级工程师,长期从事空管技术研究和产品研发工作,作为课题负责人,参与了国家863计划.国家科技支撑计划.国家空管委重点课题.民航局重点课 ...

  2. System.Threading.Timer 定时器的用法

    System.Threading.Timer 是C# 中的一个定时器,可以定时(不断循环)执行一个任务.它是在线程上执行的,具有很好的安全性.为此  .Net Framework 提供了5个重载的构造 ...

  3. Java反射机制DOME

    Java反射机制 public class TestHibernate { @Test public void TestHb(){ try { Class cs = Class.forName(&qu ...

  4. python 面试必读

    总结了10道题的考试侧重点,供参考: 1.How are arguments passed – by reference of by value? 考的是语法,基本功,虽说python程序员可以不用关 ...

  5. 1,SFDC 开发篇 - 类对象和SOQL查询

    1,类对象 & 接口 & 属性   2, Object & SOQL    

  6. Apache日志分析

    Apache日志统计举例 加些来了解一下如何统计Apache的访问日志,一般可以用tail命令来实时查看日志文件变化,但是各种的应用系统中的日志会非常复杂,一堆长度超过你浏览极限的日志出现在你眼前时, ...

  7. 在网页中嵌入地图API

    1.登录百度地图api,地址:http://api.map.baidu.com/lbsapi/creatmap/index.html 2.设置你的地理位置 3.简单设置下地图功能.地图的宽度和高度根据 ...

  8. 装tomcat和nginx心得

    开机启动tomcat 1:在/etc/rc.d/init.d目录下生成一个文件tomcat8080 2:在文件里添加如下内 #!/bin/bash #2345 linux运行级别 #10开机启动优先级 ...

  9. background-size拉伸背景图片

    在制作页面中常需要对背景图片在容器中进行平铺,可用background-size属性对背景编辑:拉伸,压缩等~ background-size:contain; 将背景扩展到整个容器大小. 较为实用的 ...

  10. log4j输出模板

    log4j.rootLogger=DEBUG, A1,A2 log4j.appender.A1.MaxFileSize=1kb#10个备份 log4j.appender.A1.MaxBackupInd ...