public final class ImageSizeUtils
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static int |
computeImageSampleSize(ImageSize srcSize,
ImageSize targetSize,
ViewScaleType viewScaleType,
boolean powerOf2Scale)
Computes sample size for downscaling image size (srcSize) to view size (targetSize).
|
static float |
computeImageScale(ImageSize srcSize,
ImageSize targetSize,
ViewScaleType viewScaleType,
boolean stretch)
Computes scale of target size (targetSize) to source size (srcSize).
Examples: |
static int |
computeMinImageSampleSize(ImageSize srcSize)
Computes minimal sample size for downscaling image so result image size won't exceed max acceptable OpenGL
texture size.
We can't create Bitmap in memory with size exceed max texture size (usually this is 2048x2048) so this method calculate minimal sample size which should be applied to image to fit into these limits. |
static ImageSize |
defineTargetSizeForView(ImageAware imageAware,
ImageSize maxImageSize)
Defines target size for image aware view.
|
public static ImageSize defineTargetSizeForView(ImageAware imageAware, ImageSize maxImageSize)
view
parameters, configuration
parameters or device display dimensions.public static int computeImageSampleSize(ImageSize srcSize, ImageSize targetSize, ViewScaleType viewScaleType, boolean powerOf2Scale)
srcSize(100x100), targetSize(10x10), powerOf2Scale = true -> sampleSize = 8 srcSize(100x100), targetSize(10x10), powerOf2Scale = false -> sampleSize = 10 srcSize(100x100), targetSize(20x40), viewScaleType = FIT_INSIDE -> sampleSize = 5 srcSize(100x100), targetSize(20x40), viewScaleType = CROP -> sampleSize = 2
srcSize
- Original (image) sizetargetSize
- Target (view) sizeviewScaleType
- Scale type for placing image in viewpowerOf2Scale
- true - if sample size be a power of 2 (1, 2, 4, 8, ...)public static int computeMinImageSampleSize(ImageSize srcSize)
srcSize
- Original image sizepublic static float computeImageScale(ImageSize srcSize, ImageSize targetSize, ViewScaleType viewScaleType, boolean stretch)
srcSize(40x40), targetSize(10x10) -> scale = 0.25 srcSize(10x10), targetSize(20x20), stretch = false -> scale = 1 srcSize(10x10), targetSize(20x20), stretch = true -> scale = 2 srcSize(100x100), targetSize(20x40), viewScaleType = FIT_INSIDE -> scale = 0.2 srcSize(100x100), targetSize(20x40), viewScaleType = CROP -> scale = 0.4
srcSize
- Source (image) sizetargetSize
- Target (view) sizeviewScaleType
- Scale type for placing image in viewstretch
- Whether source size should be stretched if target size is larger than source size. If false
then result scale value can't be greater than 1.