在Android中获取图像缩略图
我需要一个图像的缩略图。我只知道存储在SD卡中的图像的名称。有人能帮我吗。试试这个在Android中获取图像缩略图,android,image,thumbnails,Android,Image,Thumbnails,我需要一个图像的缩略图。我只知道存储在SD卡中的图像的名称。有人能帮我吗。试试这个 final int THUMBSIZE = 64; Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(imagePath), THUMBSIZE, THUMBSIZE); 有关详细信息。使用可以查询并获取两种缩略图:迷你型:512 x 384缩略图迷你型:96 x
final int THUMBSIZE = 64;
Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(imagePath),
THUMBSIZE, THUMBSIZE);
有关详细信息。使用可以查询并获取两种缩略图:迷你型:512 x 384缩略图迷你型:96 x 96缩略图
byte[] imageData = null;
try
{
final int THUMBNAIL_SIZE = 64;
FileInputStream fis = new FileInputStream(fileName);
Bitmap imageBitmap = BitmapFactory.decodeStream(fis);
Float width = new Float(imageBitmap.getWidth());
Float height = new Float(imageBitmap.getHeight());
Float ratio = width/height;
imageBitmap = Bitmap.createScaledBitmap(imageBitmap, (int)(THUMBNAIL_SIZE * ratio), THUMBNAIL_SIZE, false);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
imageData = baos.toByteArray();
}
catch(Exception ex) {
}
使用此调用的优点是缩略图由MediaStore缓存。因此,如果先前创建了缩略图,则检索速度会更快。如果您喜欢HQ缩略图,请使用[RapidDecoder][1]库。简单如下:
import rapid.decoder.BitmapDecoder;
...
Bitmap bitmap = BitmapDecoder.from(getResources(), R.drawable.image)
.scale(width, height)
.useBuiltInDecoder(true)
.decode();
如果你想缩小到50%以下并得到一个HQ结果,不要忘记使用内置解码器。你想用这个缩略图做什么我需要这个缩略图,因为当我把所有图像URI直接放在GridView中时,我一直得到
java.lang.OutOfMemoryError
。什么是imagePath
?它是存储在SD卡中的图像路径名。如果您正在为可以使用的图像使用Uri获取路径,例如imageUri.getPath()