2015-02-03 4 views
0

Я хочу изменить размер растровой карты & шириной так же, как и пользовательское устройство шириной & height.So, пожалуйста, помогите мне, если вы знаете код. Спасибо!Как изменить высоту и ширину растрового изображения программно в android?

Это мой код:

Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.nature); 

DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics(); 
width = metrics.widthPixels; 
height=metrics.heightPixels; 

Но он не работает

+0

Это может помочь вам - http://developer.android.com/training/displaying-bitmaps/load-bitmap.html –

+0

Использование \t ** Bitmap.createScaledBitmap (ЦСИ, dstWidth, dstHeight, фильтр) ** –

ответ

1

Попробуйте использовать этот метод:

public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) { 
    // GET CURRENT SIZE 
    int width = bm.getWidth(); 
    int height = bm.getHeight(); 
    // GET SCALE SIZE 
    float scaleWidth = ((float) newWidth)/width; 
    float scaleHeight = ((float) newHeight)/height; 
    // CREATE A MATRIX FOR THE MANIPULATION 
    Matrix matrix = new Matrix(); 
    // RESIZE THE BIT MAP 
    matrix.postScale(scaleWidth, scaleHeight); 
    // "RECREATE" THE NEW BITMAP 
    Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false); 
    return resizedBitmap; 
} 
+0

Не работает ... :( – NarendraJi

0

Bitmap.createScaledBitmap прекрасно работает. Как document:

Создает новое растровое изображение, масштабируемое из существующего растрового изображения, когда это возможно. Если указанная ширина и высота совпадают с текущей шириной и высотой исходного растрового изображения, исходная битовая карта возвращается и не создается новая растровая карта.

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