Imageloader<7>-获取图片需要显示的大小
来源:互联网 发布:centos如何安装deb文件 编辑:程序博客网 时间:2024/06/03 20:46
说一下通过线程加载图片的过程:
- 首先根据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 width if (width <= 0) width = params.width; // Get layout width parameter if (width <= 0) width = getImageViewFieldValue(imageView, "mMaxWidth"); // Check maxWidth parameter if (width <= 0) width = displayMetrics.widthPixels; int height = params.height == ViewGroup.LayoutParams.WRAP_CONTENT ? 0 : imageView .getHeight(); // Get actual image height if (height <= 0) height = params.height; // Get layout height parameter if (height <= 0) height = getImageViewFieldValue(imageView, "mMaxHeight"); // Check // maxHeight // parameter if (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; }
0 0
- Imageloader<7>-获取图片需要显示的大小
- 计算ImageLoader加载图片的缓存大小
- android 使用imageloader 获取图片时,如果需要带cookie
- ImageLoader显示文件夹下的图片
- 简述ImageLoader显示图片的流程
- ImageLoader获取本地缓存图片的bitmap
- ImageLoader获取磁盘中存入的图片
- 获取json数据和ImageLoader图片显示到listview
- ImageLoader获取网络图片
- ImageLoader获取网络图片
- ImageLoader,获取图片
- js 获取浏览器的大小以及图片闪烁显示
- html5获取上传图片的大小和即时显示
- js动态加载显示图片,获取大小
- ImageLoader加载显示图片解析
- 如何把存储在数据库中的图片根据自己的需要的大小显示出来。【转】
- 图片的大小限制显示
- ImageLoader获取网络数据图片
- 如何在myeclipse里预览JSP页面
- 【C语言提高34】数组指针变量的定义
- STL_7:空间配置器
- 工作平常用语
- Android之基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]
- Imageloader<7>-获取图片需要显示的大小
- 运算符重载编程题1(C++程序设计第4周)
- 微信支付:支付过期时间问题、302 问题、code 、openid
- Mysql自联结深入剖析
- 【UESTC】2015 UESTC Training for Data Structures
- 运算符重载编程题2(C++程序设计第4周)
- ubuntu 安装jdk7小结
- LeetCode 118:Pascal's Triangle
- Composer