/** Scales dimensions according to incoming scale. Returns new object. */ public ImageSize scale(float scale) { return new ImageSize((int) (width * scale), (int) (height * scale)); }
/** Scales down dimensions in <b>sampleSize</b> times. Returns new object. */ public ImageSize scaleDown(int sampleSize) { return new ImageSize(width / sampleSize, height / sampleSize); }
ImageSize getMaxImageSize() { DisplayMetrics displayMetrics = resources.getDisplayMetrics(); int width = maxImageWidthForMemoryCache; if (width <= 0) { width = displayMetrics.widthPixels; } int height = maxImageHeightForMemoryCache; if (height <= 0) { height = displayMetrics.heightPixels; } return new ImageSize(width, height); }
public MyImageWare(String imageUri, BaseDanmaku danmaku, int width, int height, IDanmakuView danmakuView) { this(imageUri, new ImageSize(width, height), ViewScaleType.FIT_INSIDE); if (danmaku == null) { throw new IllegalArgumentException("danmaku may not be null"); } this.danmaku = danmaku; this.id = danmaku.hashCode(); this.danmakuViewRef = new WeakReference<>(danmakuView); this.start = SystemClock.uptimeMillis(); }
@Override public void displayImage(Activity activity, String path, ImageView imageView, int width, int height) { ImageSize size = new ImageSize(width, height); com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(Uri.fromFile(new File(path)).toString(), imageView, size); }
@Override public void displayImagePreview(Activity activity, String path, ImageView imageView, int width, int height) { ImageSize size = new ImageSize(width, height); com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(Uri.fromFile(new File(path)).toString(), imageView, size); }
protected ImageFileInfo defineImageSizeAndRotation(InputStream imageStream, ImageDecodingInfo decodingInfo) throws IOException { Options options = new Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeStream(imageStream, null, options); ExifInfo exif; String imageUri = decodingInfo.getImageUri(); if (decodingInfo.shouldConsiderExifParams() && canDefineExifParams(imageUri, options.outMimeType)) { exif = defineExifOrientation(imageUri); } else { exif = new ExifInfo(); } return new ImageFileInfo(new ImageSize(options.outWidth, options.outHeight, exif.rotation), exif); }
@Test public void testGetImageSizeScaleTo_useImageLayoutParams() throws Exception { // Set a defined width mView.setLayoutParams(new FrameLayout.LayoutParams(300, 300)); ImageSize expected = new ImageSize(300, 300); ImageSize result = ImageSizeUtils.defineTargetSizeForView(mImageAware, new ImageSize(500, 500)); Assertions.assertThat(result).isNotNull().isEqualsToByComparingFields(expected); }
@Test public void testGetImageSizeScaleTo_useImageConfigMaxSize() throws Exception { ImageSize expected = new ImageSize(500, 500); ImageSize result = ImageSizeUtils.defineTargetSizeForView(mImageAware, new ImageSize(500, 500)); Assertions.assertThat(result).isNotNull().isEqualsToByComparingFields(expected); }
/** * Defines target size for image aware view. Size is defined by target * {@link com.nostra13.universalimageloader.core.imageaware.ImageAware view} parameters, configuration * parameters or device display dimensions.<br /> */ public static ImageSize defineTargetSizeForView(ImageAware imageAware, ImageSize maxImageSize) { int width = imageAware.getWidth(); if (width <= 0) width = maxImageSize.getWidth(); int height = imageAware.getHeight(); if (height <= 0) height = maxImageSize.getHeight(); return new ImageSize(width, height); }
ImageSize srcSize = new ImageSize(subsampledBitmap.getWidth(), subsampledBitmap.getHeight(), rotation); float scale = ImageSizeUtils.computeImageScale(srcSize, decodingInfo.getTargetSize(), decodingInfo .getViewScaleType(), scaleType == ImageScaleType.EXACTLY_STRETCHED);
static void updateAppWidget(Context context, final AppWidgetManager appWidgetManager, final int appWidgetId) { final RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); ImageSize minImageSize = new ImageSize(70, 70); // 70 - approximate size of ImageView in widget ImageLoader.getInstance() .loadImage(IMAGES[0], minImageSize, displayOptions, new SimpleImageLoadingListener() { @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { views.setImageViewBitmap(R.id.image_left, loadedImage); appWidgetManager.updateAppWidget(appWidgetId, views); } }); ImageLoader.getInstance() .loadImage(IMAGES[1], minImageSize, displayOptions, new SimpleImageLoadingListener() { @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { views.setImageViewBitmap(R.id.image_right, loadedImage); appWidgetManager.updateAppWidget(appWidgetId, views); } }); } }
/** * This will make sure the view falls back to the ViewParams/Max/Or Config if wrap content so that it is never * shrunk to the first image size. In this case it falls back to the config size * * @throws Exception */ @Test public void testGetImageSizeScaleTo_dontUseImageActualSizeWithWrapContent() throws Exception { //Set it to wrap content so that it will fall back to mView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); mView.measure(View.MeasureSpec.makeMeasureSpec(250, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(250, View.MeasureSpec.EXACTLY)); // We layout the view to give it a width and height mView.layout(0, 0, 200, 200); ImageSize expected = new ImageSize(500, 500); ImageSize result = ImageSizeUtils.defineTargetSizeForView(mImageAware, new ImageSize(500, 500)); Assertions.assertThat(result).isNotNull().isEqualsToByComparingFields(expected); }
@Test public void testGetImageSizeScaleTo_useImageActualSize() throws Exception { // We layout the view to give it a width and height mView.measure(View.MeasureSpec.makeMeasureSpec(200, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(200, View.MeasureSpec.EXACTLY)); mView.layout(0, 0, 200, 200); ImageSize expected = new ImageSize(200, 200); ImageSize result = ImageSizeUtils.defineTargetSizeForView(mImageAware, new ImageSize(590, 590)); Assertions.assertThat(result).isNotNull(); Assertions.assertThat(result.getWidth()).isEqualTo(expected.getWidth()); Assertions.assertThat(result.getHeight()).isEqualTo(expected.getHeight()); }
int result; ImageSize srcSize = new ImageSize(300, 100); ImageSize targetSize = new ImageSize(30, 10); result = ImageSizeUtils.computeImageSampleSize(srcSize, targetSize, scaleType, false); Assertions.assertThat(result).isEqualTo(10); Assertions.assertThat(result).isEqualTo(8); srcSize = new ImageSize(300, 100); targetSize = new ImageSize(200, 200); result = ImageSizeUtils.computeImageSampleSize(srcSize, targetSize, scaleType, false); Assertions.assertThat(result).isEqualTo(1); srcSize = new ImageSize(300, 100); targetSize = new ImageSize(55, 40); result = ImageSizeUtils.computeImageSampleSize(srcSize, targetSize, scaleType, false); Assertions.assertThat(result).isEqualTo(2); srcSize = new ImageSize(300, 100); targetSize = new ImageSize(30, 30); result = ImageSizeUtils.computeImageSampleSize(srcSize, targetSize, scaleType, false); Assertions.assertThat(result).isEqualTo(3); srcSize = new ImageSize(5000, 70); targetSize = new ImageSize(300, 30); result = ImageSizeUtils.computeImageSampleSize(srcSize, targetSize, scaleType, false); Assertions.assertThat(result).isEqualTo(3);
int result; ImageSize srcSize = new ImageSize(300, 100); ImageSize targetSize = new ImageSize(30, 10); result = ImageSizeUtils.computeImageSampleSize(srcSize, targetSize, scaleType, false); Assertions.assertThat(result).isEqualTo(10); Assertions.assertThat(result).isEqualTo(8); srcSize = new ImageSize(300, 100); targetSize = new ImageSize(200, 200); result = ImageSizeUtils.computeImageSampleSize(srcSize, targetSize, scaleType, false); Assertions.assertThat(result).isEqualTo(1); srcSize = new ImageSize(300, 100); targetSize = new ImageSize(55, 40); result = ImageSizeUtils.computeImageSampleSize(srcSize, targetSize, scaleType, false); Assertions.assertThat(result).isEqualTo(5); srcSize = new ImageSize(300, 100); targetSize = new ImageSize(30, 40); result = ImageSizeUtils.computeImageSampleSize(srcSize, targetSize, scaleType, false); Assertions.assertThat(result).isEqualTo(10); srcSize = new ImageSize(5000, 70); targetSize = new ImageSize(2000, 30); result = ImageSizeUtils.computeImageSampleSize(srcSize, targetSize, scaleType, false); Assertions.assertThat(result).isEqualTo(3);
/** Decodes image file into Bitmap, resize it and save it back */ private boolean resizeAndSaveImage(int maxWidth, int maxHeight) throws IOException { // Decode image file, compress and re-save it boolean saved = false; File targetFile = configuration.diskCache.get(uri); if (targetFile != null && targetFile.exists()) { ImageSize targetImageSize = new ImageSize(maxWidth, maxHeight); DisplayImageOptions specialOptions = new DisplayImageOptions.Builder().cloneFrom(options) .imageScaleType(ImageScaleType.IN_SAMPLE_INT).build(); ImageDecodingInfo decodingInfo = new ImageDecodingInfo(memoryCacheKey, Scheme.FILE.wrap(targetFile.getAbsolutePath()), uri, targetImageSize, ViewScaleType.FIT_INSIDE, getDownloader(), specialOptions); Bitmap bmp = decoder.decode(decodingInfo); if (bmp != null && configuration.processorForDiskCache != null) { L.d(LOG_PROCESS_IMAGE_BEFORE_CACHE_ON_DISK, memoryCacheKey); bmp = configuration.processorForDiskCache.process(bmp); if (bmp == null) { L.e(ERROR_PROCESSOR_FOR_DISK_CACHE_NULL, memoryCacheKey); } } if (bmp != null) { saved = configuration.diskCache.save(uri, bmp); bmp.recycle(); } } return saved; }
ImageSize getMaxImageSize() { DisplayMetrics displayMetrics = resources.getDisplayMetrics(); int width = maxImageWidthForMemoryCache; if (width <= 0) { width = displayMetrics.widthPixels; } int height = maxImageHeightForMemoryCache; if (height <= 0) { height = displayMetrics.heightPixels; } return new ImageSize(width, height); }
/** * Defines target size for image aware view. Size is defined by target * {@link com.nostra13.universalimageloader.core.imageaware.ImageAware view} parameters, configuration * parameters or device display dimensions.<br /> */ public static ImageSize defineTargetSizeForView(ImageAware imageAware, ImageSize maxImageSize) { int width = imageAware.getWidth(); if (width <= 0) width = maxImageSize.getWidth(); int height = imageAware.getHeight(); if (height <= 0) height = maxImageSize.getHeight(); return new ImageSize(width, height); }
/** * Defines target size for image aware view. Size is defined by target * {@link com.nostra13.universalimageloader.core.imageaware.ImageAware view} parameters, configuration * parameters or device display dimensions.<br /> */ public static ImageSize defineTargetSizeForView(ImageAware imageAware, ImageSize maxImageSize) { int width = imageAware.getWidth(); if (width <= 0) width = maxImageSize.getWidth(); int height = imageAware.getHeight(); if (height <= 0) height = maxImageSize.getHeight(); return new ImageSize(width, height); }