2012-05-15 2 views
0

Мой код, как показано ниже:Как получить миниатюры, такие как 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

я получаю ответ на код ниже:

Bitmap sourceBitMap = BitmapFactory.decodeFile(p, opts);  
sourceBitMap = ThumbnailUtils.extractThumbnail(sourceBitMap, 96, 96); 
+0

очень полезно !! XD – KryNaC

1

Вы попробовали Bitmap#createScaledBitmap?

Пример:

Bitmap scaled = Bitmap.createScaledBitmap(sourceBitMap, 96, 96, false) 
+0

Но это изменит пропорции. – brian

+0

Я хочу изменить 500 * 250 на 192 * 96. А затем разрезать масштаб до 96 * 96. – brian

+0

Например, дисплей CENTER_CROP. – brian

Смежные вопросы