2016-11-21 5 views
1

Я хочу создать новое растровое изображение с определенным размером, например, 200x200Установить изображение в растровое изображение в Android

Bitmap b = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888); 

Теперь я понимаю, чтобы поместить внутрь этого растрового изображения в SD-карта, но настраивая изображение SD на размер созданного растрового изображения.

Делайте то, что я могу сделать с помощью ImageView:

<ImageView android:src="@drawable/landscape" 
    android:adjustViewBounds="false" /> 

Результат, который я смотрю на это следующее:

enter image description here

Спасибо заранее.

EDIT: пост мой код

public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) { 

     // First decode with inJustDecodeBounds=true to check dimensions 
     final BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inJustDecodeBounds = false; 
     BitmapFactory.decodeResource(res, resId, options); 

     // Calculate inSampleSize 
//  options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); 

     // Decode bitmap with inSampleSize set 
     options.inJustDecodeBounds = false; 
     return BitmapFactory.decodeResource(res, resId, options); 
    } 

-

imageView.setImageBitmap(decodeSampledBitmapFromResource(getResources(), R.drawable.paisaje, 200, 200)); 
+0

Я испытал много вариаций на эту документацию код: https://developer.android.com/training/displaying-bitmaps/load-bitmap.html ... Я удалил часть calculateInSampleSize ... но Я не могу получить растровое изображение контейнера 200x200px. – Sergio76

+0

Отправьте свой код. – mallaudin

+0

Я добавил код к сообщению – Sergio76

ответ

1

outWidth и outHeight в BitmapFactory.Options не установить ширину и высоту результирующее изображение. Они меняются только при изменении inSampleSize, а inJustDecodeBounds - false, в противном случае они используются для . высота и ширина изображения.

Вы можете попробовать createScaledBitmap, который масштабирует растровое изображение и возвращает новое растровое изображение.

public Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) { 

    return Bitmap.createScaledBitmap(BitmapFactory.decodeResource(res, resId), reqWidth, reqHeight, true); 
} 
+0

Ваше решение работает, но у меня проблема, создав 1000x1000, не отрегулируйте изображение, например изображение выше. Это текущий результат: https: //s14.postimg.org/otagxzfe9/Captura_de_pantalla_2016_11_21_a_las_15_19_57 .png ..ideas? Спасибо – Sergio76

+0

какая проблема? – mallaudin

+0

Установите 'android: layout_width' и' android: layout_height' 'ImageView' в' wrap_content' в xml. – mallaudin

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