как масштабировать изображение в соответствии с разрешением экрана?

#android #image-scaling

#Android #масштабирование изображения

Вопрос:

Друзья,

я использую следующий код для изменения размера изображения

  private Bitmap resizeImage( final Bitmap image) {
        Bitmap resizedImage = null;
        if(image != null)
        {
        int maxHeight = 80; //actual image height coming from internet
        int maxWidth = 150; //actual image width coming from internet

        int imageHeight = image.getHeight();
        if ( imageHeight > maxHeight )
        imageHeight = maxHeight;
        int imageWidth = (imageHeight*image.getWidth()) / image.getHeight();
        if ( imageWidth > maxWidth ) {
        imageWidth = maxWidth;
        imageHeight = (imageWidth*image.getHeight()) / image.getWidth();
        }
        resizedImage = Bitmap.createScaledBitmap( image, imageWidth, imageHeight, true);
        }
        return resizedImage;
        }
  

поступает из Интернета.
теперь это прекрасно работает на экране с высоким разрешением, но на маленьком экране никто не подсказывает мне, что я должен сделать, чтобы отобразить изображение в соответствии с разрешением экрана?

Ответ №1:

 Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
  

итак, если у вас есть ширина экрана и высота, вы можете отображать изображение в соответствии с разрешением экрана.

Комментарии:

1. ну, это может быть ваш вопрос, но человек, задавший этот вопрос, уже знает, что делать дальше. здесь вы можете изменить размер изображения = Bitmap.createScaledBitmap (изображение, ширина изображения, высота изображения, true);

2. getWidth () и getHeight () теперь устарели (API 13 ). Используйте следующее: Point size = new Point(); display.getSize(size); int screenWidth = size.x; int screenHeight = size.y;

Ответ №2:

Создайте три типа папок для рисования: drawable-hdpi, drawable-mdpi, drawable-ldpi. Поместите разное разрешение изображений с одинаковым именем в эти папки. Приложение отобразит само себя. Другой способ — создать изображение с 9 патчами. 9-исправленные изображения настраиваются в соответствии с разрешением. а также вы должны быть осторожны при создании макета. вы должны правильно настроить макет. Высота и ширина экрана необходимы для установки изображений в какой части экрана.

Спасибо Дипак