2 o casper ne O_Casper_ne 于 2013.07.03 10:40 提问

如何获取诸如 micro_kind 的缩略图?

代码如下:

Bitmap getPreview(String path, int THUMBNAIL_SIZE) {
BitmapFactory.Options bounds = new BitmapFactory.Options();
bounds.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, bounds);
if((bounds.outWidth == -1) || (bounds.outHeight == -1)) {
return null;
}
int originalSize = (bounds.outHeight > bounds.outWidth) ? bounds.outHeight : bounds.outWidth;
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize = originalSize / THUMBNAIL_SIZE;
return BitmapFactory.decodeFile(path, opts);     
}

但是这段代码只能获取和之前相同的比例。

我想获取 96 * 96 就像 micro_kind 的缩略图,但是不使用 micro_kind。
如何修改?

1个回答

Jave_
Jave_   2013.07.03 11:53
 private Bitmap getImageThumbnail(String imagePath, int width, int height) {  
    Bitmap bitmap = null;  
    BitmapFactory.Options options = new BitmapFactory.Options();  
    options.inJustDecodeBounds = true;  
    // 获取这个图片的宽和高,注意此处的bitmap为null  
    bitmap = BitmapFactory.decodeFile(imagePath, options);  
    options.inJustDecodeBounds = false; // 设为 false  
    // 计算缩放比  
    int h = options.outHeight;  
    int w = options.outWidth;  
    int beWidth = w / width;  
    int beHeight = h / height;  
    int be = 1;  
    if (beWidth < beHeight) {  
        be = beWidth;  
    } else {  
        be = beHeight;  
    }  
    if (be <= 0) {  
        be = 1;  
    }  
    options.inSampleSize = be;  
    // 重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds 设为 false  
    bitmap = BitmapFactory.decodeFile(imagePath, options);  
    // 利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象  
    bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,  
            ThumbnailUtils.OPTIONS_RECYCLE_INPUT);  
    return bitmap;  
}  
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!