Imageloader7-获取图片需要显示的大小
生活随笔
收集整理的這篇文章主要介紹了
Imageloader7-获取图片需要显示的大小
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
說(shuō)一下通過(guò)線程加載圖片的過(guò)程:
第一步 根據(jù)ImageView獲得適當(dāng)?shù)膲嚎s的寬和高
因?yàn)橐@取到壓縮的寬和高,方法只能返回一個(gè)值,所以我們可以采用內(nèi)部類(lèi)的方式將寬和高設(shè)置為變量,返回此類(lèi)的對(duì)象即可。
/*** 壓縮的寬和高*/private class ImageSize{int width ;int height;}計(jì)算壓縮的寬和高的方法
/*** 根據(jù)imageView獲取適當(dāng)?shù)膲嚎s的寬和高* @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;} /*** 為了兼容低版本,沒(méi)有采用@Target()的方式* 反射獲得ImageView設(shè)置的最大寬度和高度** @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;}總結(jié)
以上是生活随笔為你收集整理的Imageloader7-获取图片需要显示的大小的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ListView使用技巧-更新中
- 下一篇: Imageloader8-压缩图片