Imageloader7-获取图片需要显示的大小
说一下通过线程加载图片的过程:
- 首先根据ImageView获得适当的压缩的宽和高
- 然后计算inSampleSize,用于压缩图片
- 接着将图片添加到缓存
- 最后mUIHandler发送消息更新图片。
第一步 根据ImageView获得适当的压缩的宽和高
因为要获取到压缩的宽和高,方法只能返回一个值,所以我们可以采用内部类的方式将宽和高设置为变量,返回此类的对象即可。
/*** 压缩的宽和高*/private class ImageSize{int width ;int height;}
计算压缩的宽和高的方法
/*** 根据imageView获取适当的压缩的宽和高* @param imageView*/private ImageSize getImageViewSize(ImageView imageView) {ImageSize imageSize = new ImageSize();final DisplayMetrics displayMetrics = imageView.getContext().getResources().getDisplayMetrics();final ViewGroup.LayoutParams params = imageView.getLayoutParams();int width = params.width == ViewGroup.LayoutParams.WRAP_CONTENT ? 0 : imageView.getWidth(); // Get actual image widthif (width <= 0)width = params.width; // Get layout width parameterif (width <= 0)width = getImageViewFieldValue(imageView, "mMaxWidth"); // Check maxWidth parameterif (width <= 0)width = displayMetrics.widthPixels;int height = params.height == ViewGroup.LayoutParams.WRAP_CONTENT ? 0 : imageView.getHeight(); // Get actual image heightif (height <= 0)height = params.height; // Get layout height parameterif (height <= 0)height = getImageViewFieldValue(imageView, "mMaxHeight"); // Check// maxHeight// parameterif (height <= 0)height = displayMetrics.heightPixels;imageSize.width = width;imageSize.height = height;return imageSize;}
/*** 为了兼容低版本,没有采用@Target()的方式* 反射获得ImageView设置的最大宽度和高度** @param object* @param fieldName* @return*/private static int getImageViewFieldValue(Object object, String fieldName){int value = 0;try{Field field = ImageView.class.getDeclaredField(fieldName);**field.setAccessible(true);**int fieldValue = (Integer) field.get(object);if (fieldValue > 0 && fieldValue < Integer.MAX_VALUE){value = fieldValue;Log.e("TAG", value + "");}} catch (Exception e){}return value;}
Imageloader7-获取图片需要显示的大小相关推荐
- Android通过网络URL获取图片并显示
1.布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:to ...
- android开发 获取相册名称_android通过拍照、相册获取图片并显示 实例完整源码下载(亲测通过)...
[实例简介]其中也包含了 将图片保存至 sd卡功能 [实例截图] [核心代码] public class MainActivity extends Activity{ private static f ...
- input文件框选择本地图片后页面预览图片并获取图片长宽以及大小 图片上传前预览
前面有转过一篇通过HTML5来实现图片上传前预览 ,现在借助FileReader也实现了这个需求.并且同时还可以获得图片的长宽相素以及图片文件的大小.demo如下: <html> < ...
- 获取图片宽高、大小和图片类型
直接贴代码 public static void main(String[] args) {String picUrl = "http://placeimg.com/640/480/any. ...
- JavaScript获取浏览器的显示区域大小信息
针对IE Firefox 数值不一样 区域说明 JavaScript Code 网页可见区域宽 document.body.clientWidth 网页可见区域高 document.body.cli ...
- vue 如何获取图片的原图尺寸_js获取图片信息(一)-----获取图片的原始尺寸
如何获取图片的原始尺寸大小? 如下,当给 img 设置一个固定的大小时,要怎样获取图片的原始尺寸呢? #oImg{ width: 100px; height: 100px; } 方法一: HTML5提 ...
- 超大图片的显示:BitmapRegionDecoder 1
不少安卓开发者都有图片加载的处理经验,比如通过压缩节省图片加载中对内存的消耗. 我们经常做的是把一张1280之类大小的图片以适应屏幕大小的尺寸展现出来,同时能够通过缩放来观察. 不过这是一般水平,通过 ...
- 获取拍照图片,显示大图像
获取拍照图片 标准代码: 关键是传地址 显示大图像 加载并显示一幅图像对内存使用情况具有显著的影响.例如, HTC G1 电话带有一个 320 万像素的摄像头. 320 万像素的摄像头通常会捕获 20 ...
- js获取图片原始大小
摘要: 浏览器中显示的图片大小未必是他真实的高和宽,比如像下面这样,我们给他加上宽和高的样式 <img src="IE.png" style="width:25px ...
- android listview网络图片,Android ListView从网络获取图片及文字显示
上一篇文章说的是ListView展示本地的图片以及文本,这一篇说一下如何从网络获取图片以及文本来显示.事实上,一般是先获取Josn或sml数据,然后解释显示.我们先从网上获取xml,然后对其进行解析, ...
最新文章
- Fusion360操作记录
- 虚拟机+可信+云计算
- 设计模式之_Iterator_03
- java内存溢出分析工具:jmap使用实战
- win32开发(对话框启动)
- AWVS14.4.21安装时出现Internet server exception和扫描失败
- sqoop关系型数据迁移原理以及map端内存为何不会爆掉窥探
- Git:拉取远程分支
- 今天电脑突然出现问题: 请安装 TCP/IP 协议 错误 10106 【已解决·】
- three points 1(平面几何 三角形)
- 前端基础-VUE入门教程(一)
- 百慕大区块链战略不仅仅为了赢得新公司的青睐
- 如何写 [文献综述]
- 路由器TL-WR800N固件升级
- Realtek网卡插网线不亮灯解决方案
- 图片怎么转换文字?识别渠道一览
- UI设计中switch开关设计总结
- 使用Scrapy、PhantomJS和Selenium爬取知网文献摘要
- python3网络爬虫开发实战学习笔记(二)------python3 XPATH爬 猫眼电影排名
- ae安装失败计算机丢失,AE安装失败的原因你真知道吗 ?正确的安装AE软件