答案 0 :(得分:1)
使用以下方法获取缩略图。
当您拥有图像的“路径”时,此方法很有用。
/**
* Create a thumb of given argument size
*
* @param selectedImagePath
* : String value indicate path of Image
* @param thumbWidth
* : Required width of Thumb
* @param thumbHeight
* : required height of Thumb
* @return Bitmap : Resultant bitmap
*/
public static Bitmap createThumb(String selectedImagePath, int thumbWidth,
int thumbHeight) {
BitmapFactory.Options options = new BitmapFactory.Options();
// Decode weakReferenceBitmap with inSampleSize set
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(selectedImagePath, options);
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
if (height > thumbHeight || width > thumbWidth) {
if (width > height) {
inSampleSize = Math.round((float) height / (float) thumbHeight);
} else {
inSampleSize = Math.round((float) width / (float) thumbWidth);
}
}
options.inJustDecodeBounds = false;
options.inSampleSize = inSampleSize;
return BitmapFactory.decodeFile(selectedImagePath, options);
}
要使用此方法,
createThumb("path of image",100,100);
修改强>
当您拥有图像的位图时,会使用此方法。
public static Bitmap createThumb(Bitmap sourceBitmap, int thumbWidth,int thumbHeight) {
return Bitmap.createScaledBitmap(sourceBitmap, thumbWidth, thumbHeight,true);
}
使用此方法
createThumb(editedImage, 100, 100);
答案 1 :(得分:0)
尝试此方法将根据您想要的大小缩放尺寸来保持宽高比和缩放
public Bitmap crateThumbNail(String imagePath,int size) {
try {
// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeFile(imagePath, o);
// The new size we want to scale to
final int REQUIRED_SIZE = size;
// Find the correct scale value. It should be the power of 2.
int scale = 1;
while (o.outWidth / scale / 2 >= REQUIRED_SIZE && o.outHeight / scale / 2 >= REQUIRED_SIZE)
scale *= 2;
// Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeFile(imagePath, o2);
} catch (Throwable e) {
e.printStackTrace();
}
return null;
}