Fix resizing on Android
This commit is contained in:
parent
7d19fab226
commit
6f5ff49c68
|
@ -16,18 +16,27 @@ import java.util.Date;
|
||||||
* Created by almouro on 11/19/15.
|
* Created by almouro on 11/19/15.
|
||||||
*/
|
*/
|
||||||
class ImageResizer {
|
class ImageResizer {
|
||||||
private static Bitmap resizeImage(String imagePath, int newWidth, int newHeight) {
|
|
||||||
try {
|
|
||||||
return ThumbnailUtils.extractThumbnail(
|
|
||||||
BitmapFactory.decodeFile(imagePath),
|
|
||||||
newWidth,
|
|
||||||
newHeight
|
|
||||||
);
|
|
||||||
} catch (OutOfMemoryError ex) {
|
|
||||||
// We have no memory to rotate. Return the original bitmap.
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
private static Bitmap resizeImage(String imagePath, int maxWidth, int maxHeight) {
|
||||||
|
Bitmap image = BitmapFactory.decodeFile(imagePath);
|
||||||
|
if (maxHeight > 0 && maxWidth > 0) {
|
||||||
|
int width = image.getWidth();
|
||||||
|
int height = image.getHeight();
|
||||||
|
float ratioBitmap = (float) width / (float) height;
|
||||||
|
float ratioMax = (float) maxWidth / (float) maxHeight;
|
||||||
|
|
||||||
|
int finalWidth = maxWidth;
|
||||||
|
int finalHeight = maxHeight;
|
||||||
|
if (ratioMax > 1) {
|
||||||
|
finalWidth = (int) ((float)maxHeight * ratioBitmap);
|
||||||
|
} else {
|
||||||
|
finalHeight = (int) ((float)maxWidth / ratioBitmap);
|
||||||
|
}
|
||||||
|
image = Bitmap.createScaledBitmap(image, finalWidth, finalHeight, true);
|
||||||
|
return image;
|
||||||
|
} else {
|
||||||
|
return image;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Bitmap rotateImage(Bitmap b, float degrees)
|
public static Bitmap rotateImage(Bitmap b, float degrees)
|
||||||
|
|
Loading…
Reference in New Issue