android加载图片+背景,Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法...
本文实例讲述了Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法。分享给大家供大家参考,具体如下:
最近开始接触到android的开发,在开发中使用ImageLoder加载网络图片,但是框架加载的图片默认是通过ImageView的src属性设置,所以在某些场合是不符合需求,比如通过设置src在某些场景下是不能填充满整个ImageView,但是通过设置背景就可以实现,而框架并没有提供将图片设置为背景的方法,我在网上找了半天也看到了一些解决方案,但不是我想要的,于是我决定去看看源码是怎么实现,果然在源码中就找到了“新大陆”,压抑不住内心的喜悦赶紧写博客分享,也算做个笔记,希望对大家有帮助。
废话到此为止 开始将进入主题(上代码)
/**
* 加载网络图片设置为ImageView背景
*
* @param url
* @param view
*/
public void loadImageToBackground(String url, ImageView view) {
ImageLoader.getInstance().displayImage(url, new BgImageViewAware(view));
}
上面这个方法就是一个简单的使用ImageLoder加载网络图片的例子,如果要将图片设置为背景,其核心部分就在 BgImageViewAware这个类里面,BgImageViewAware是一个自定义的类,它继承自ImageViewAware这个类,我在看源码的时候发现ImageLoder就是通过 ImageViewAware这个类把加载的图片设置到src属性的(有兴趣的小伙伴可以自己去看源码,源码我就不贴出来了),所以我只需要重写这个类的方法将图片设置到背景就解决了
下面是BgImageViewAware类的代码:
/**
*
将图片设置为ImageView的背景
* Created by ZCM on 2016/8/5. version 1.0
*/
public class BgImageViewAware extends ImageViewAware {
public BgImageViewAware(ImageView imageView) {
this(imageView, true);
}
public BgImageViewAware(ImageView imageView, boolean checkActualViewSize) {
super(imageView, checkActualViewSize);
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public boolean setImageBitmap(Bitmap bitmap) {
//重写父类方法,将图片设为背景
if(Looper.myLooper() == Looper.getMainLooper()) {
ImageView imageView = (ImageView)this.imageViewRef.get();
if(imageView != null) {
imageView.setBackground(new BitmapDrawable(bitmap));
return true;
}
}
return false;
}
@Override
public boolean setImageDrawable(Drawable drawable) {
return super.setImageDrawable(drawable);
}
}
到了这一步,将图片设置为ImageView的背景的整个功能算是我完成了(其实很简单^_^)
希望本文所述对大家Android程序设计有所帮助。
android加载图片+背景,Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法...相关推荐
- Android事件分发机制在实战开发中的应用之一
学习的最终目标就是要学以致用,本文所分享的案例都是自己在公司实战开发过程中的真实案例,现在把它分享出来,希望对初学者有所帮助 版权声明:本文来自门心叼龙的博客,属于原创内容,转载请注明出处:https ...
- Android事件分发机制在实战开发中的应用之二
学习的最终目标就是要学以致用,本文所分享的案例都是自己在公司实战开发过程中的真实案例,现在把它分享出来,希望对初学者有所帮助 版权声明:本文来自门心叼龙的博客,属于原创内容,转载请注明出处:https ...
- Win8开发中如何加载字符串资源(C#)
Win8开发中如何加载字符串资源(C#) 你可以从资源文件或库等对象中加载字符串资源. 创建资源文件的方法: 在资源项目或库.控件.软件开发包中创建一个Strings文件夹在文件夹,然后在他的下面在创 ...
- 图片在xml文件中直接加载.9文件
图片在xml文件中直接加载.9文件,可能会因为图片压缩的缘故产生锯齿,如果使用 ImageView imageview = (ImageView) view .findViewById(R.id.in ...
- VS开发中的代码编写小技巧——避免重复代码编写的几种方法
原文:VS开发中的代码编写小技巧--避免重复代码编写的几种方法 上一篇文章中程序员的幸福生活--有你的日子,每天都是情人节,收到了大家的很多好评.鼓励和祝福,非常感动,真诚的谢谢大家.也希望每个朋友都 ...
- ios加载本地html懒加载图片方案,IOS开发中加载大量网络图片优化方法
IOS开发中加载大量网络图片如何优化 1.概述 在IOS下通过URL读一张网络图片并不像其他编程语言那样可以直接把图片路径放到图片路径的位置就ok,而是需要我们通过一段类似流的方式去加载网络图片,接着 ...
- 【Flutter进阶】 Web开发中如何加载网络图片
目录 前言 如何加载网络图片 列表中的网络图片 HTML renderer和CanvasKit 文本无法选择 Shadow Root问题 为什么找不到节点? Shadow Dom 问题解决 Flutt ...
- Android碎片知识(十).开发中的gps定位(转)
一.LocationManager LocationMangager,位置管理器.要想操作定位相关设备,必须先定义个LocationManager.我们可以通过如下代码创建LocationManger ...
- Android 蓝牙4.0在实际开发中的运用
1.蓝牙搜索. 首先是获取BluetoothAdapter对象: final BluetoothManager bluetoothManager = (Bluetoot ...
- ajax加载进度百分比,在ajax中显示加载百分比的进度条,php
您好我正在使用ajax加载数据库内容.我想显示加载或图像的总百分比.在ajax中显示加载百分比的进度条,php 这是我的脚本 function name1(str) { if (str.length= ...
最新文章
- python关机程序代码_python实现的重启关机程序实例
- Building Fire Stations 39届亚洲赛牡丹江站B题
- VUEX中关于 mapActions, mapMutations使用解析
- 如何将世界时钟和时区小部件添加到您的iPhone
- python gevent教程_Python的gevent框架的入门教程
- 蓝桥杯 反置数 数论
- 从JDK源码角度看Short
- 数据时代,嵌入式工程师必须知道的八大加密算法
- c++不好可以学qt吗_学美容好不好,学美容有前途吗?
- Go 依赖管理工具 Dep 的安装及配置
- oracle vm 强制关机,[已解决]Virtualbox安装archlinux过程中客户机和宿主机全部卡死...
- springboot启动banner图片
- 速学TypeScript-精简划重点手册-上册
- SAP 针对国家 country, 维护税码 tax code
- 【一起学Rust | 框架篇 | Viz框架】轻量级 Web 框架——Viz
- confusion_matrix
- GCC和Clang的两个值得了解的编译器开关
- 网站 502 解决方法
- pdf转ppt在线转换网站
- 2张图教你认识世界人口分布
热门文章
- 广度优先搜索nodeHDU/HDOJ 1242 Rescue 典型的迷宫广度优先搜索题
- 《可信计算的研究与发展》;C-Rank:一种Deep Web数据记录可信度评估方法
- javascript 绘制uml_Javascript 设计模式之面向对象与 UML 类图
- 信创只是开始_一切只是开始!谁是下一个“第一创业”?
- python中define的用法_C语言中#define用法总结
- http | 状态码
- 调剂2002年计算机科学与技术,东莞理工学院2020年硕士研究生调剂信息公告 (计算机科学与技术、资源与环境专业(原...
- qpython能使用json吗l_现在还能使用土墙吗?
- 电脑更新重启后黑屏_电脑黑屏重启还是黑屏的解决方法教程
- python中间件有哪些_python_21(Django中间件)