static void calculateInSampleSize(int reqWidth, int reqHeight, @NonNull BitmapFactory.Options options, Request request) { calculateInSampleSize(reqWidth, reqHeight, options.outWidth, options.outHeight, options, request); }
private static Bitmap decodeResourcePreP(Resources resources, int id, Request request) { final BitmapFactory.Options options = createBitmapOptions(request); if (requiresInSampleSize(options)) { BitmapFactory.decodeResource(resources, id, options); calculateInSampleSize(request.targetWidth, request.targetHeight, checkNotNull(options, "options == null"), request); } return BitmapFactory.decodeResource(resources, id, options); }
if (calculateSize) { BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options); calculateInSampleSize(request.targetWidth, request.targetHeight, checkNotNull(options, "options == null"), request); if (calculateSize) { BitmapFactory.decodeStream(bufferedSource.peek().inputStream(), null, options); calculateInSampleSize(request.targetWidth, request.targetHeight, checkNotNull(options, "options == null"), request);
@Test public void calculateInSampleSizeNoResize() { final BitmapFactory.Options options = new BitmapFactory.Options(); Request data = new Request.Builder(URI_1).build(); calculateInSampleSize(100, 100, 150, 150, options, data); assertThat(options.inSampleSize).isEqualTo(1); }
@Test public void calculateInSampleSizeResize() { final BitmapFactory.Options options = new BitmapFactory.Options(); Request data = new Request.Builder(URI_1).build(); calculateInSampleSize(100, 100, 200, 200, options, data); assertThat(options.inSampleSize).isEqualTo(2); }
@Test public void calculateInSampleSizeKeepAspectRatioWithHeight() { final BitmapFactory.Options options = new BitmapFactory.Options(); Request data = new Request.Builder(URI_1).resize(0, 100).build(); calculateInSampleSize(data.targetWidth, data.targetHeight, 800, 200, options, data); assertThat(options.inSampleSize).isEqualTo(2); }
@Test public void calculateInSampleSizeKeepAspectRatioWithWidth() { final BitmapFactory.Options options = new BitmapFactory.Options(); Request data = new Request.Builder(URI_1).resize(400, 0).build(); calculateInSampleSize(data.targetWidth, data.targetHeight, 800, 200, options, data); assertThat(options.inSampleSize).isEqualTo(2); }
@Test public void calculateInSampleSizeResizeCenterInside() { final BitmapFactory.Options options = new BitmapFactory.Options(); Request data = new Request.Builder(URI_1).centerInside().resize(100, 100).build(); calculateInSampleSize(data.targetWidth, data.targetHeight, 400, 200, options, data); assertThat(options.inSampleSize).isEqualTo(4); }
options.inJustDecodeBounds = true; calculateInSampleSize(request.targetWidth, request.targetHeight, picassoKind.width, picassoKind.height, options, request);