В Android, из -за разнообразия мобильных телефонов с различными пикселями, для картины будут различия в отображении различных мобильных телефонов из -за разных пикселей.
Существует требование заполнения всего экрана шириной изображения и отображения его.
То, что мы часто делаем, может быть для обработки изображений следующими двумя способами.
Определите атрибут layout_parent = "match_parent" и layout_parent = "wrap_content" через <ImageView> и используйте атрибут scaletype <ImageView> для масштабирования.
- scaletype = "fitxy": когда установлено на это свойство, оно приведет к тому, что изображение будет растягиваться горизонтально, что приведет к деформированию изображения, и если на изображении есть шрифт, то это будет плохо.
- scaletype = "centercrop": это должно быть хорошо для масштабирования в том же соотношении, но это очень смущает, он все еще не работает. При обработке изображения размер изображения будет получен сначала, а затем ширина и высота изображения будут определены перед масштабированием. Таким образом, после определения диапазона изображения центральная точка изображения масштабируется одинаково до тех пор, пока ширина не заполнит экран. Это очень неловко, верхние и нижние части изображения будут отрезаны, поэтому изображение не полностью отображается, и это все еще не то, что мы хотим.
Мой подход состоит в том, чтобы получить изображение после масштабирования в коде, а затем добавить изображение, установив BackGroud, который решает проблему. Затем приведенный выше код:
// Получить разрешение изображения, получить ширину DisplayMetrics dm = new DisplayMetrics (); getWindowManager (). getDefaultDisplay (). GetMetrics (DM); int mscreenwidth = dm.widthpixels; // Получить ширину разрешения экрана int mscreenheight = dm.heightpixels; // Загрузите изображение растровое растровое значение Bitmap = bitmapfactory.decoderesource (getresources (), r.drawable.bank_help); int bitmapwidth = bitmap.getwidth (); int bitmapheight = bitmap.getheight (); // Получить соотношение ширины изображения float num = mscreenwidth /(float) растровая путя; Matrix Matrix = new Matrix (); matrix.postscale (num, num); // Сгенерировать масштабированный растровый объект Bitmap Resizebitmap = bitmap.createbitmap (растровый карта, 0, 0, растровая мощность, битмафтайт, матрица, true);
Приведенный выше код делится на следующие шаги
1. Получите разрешение экрана.
2. Получите изображение и измерьте ширину и высоту изображения.
3. Получите соответствующее соотношение Zoom через ширину экрана/ширину изображения
4. Создайте объект матрицы и определите масштабирование. (PS: эта штука очень хорошая, и объект также используется для изменения его в цвете градиента спереди)
5. Сгенерируйте изображение с помощью метода растрового ритма. Createbitmap (). (PS: последний параметр должен быть передан TRUE. Если FALSE проходит, увеличенное изображение не будет четко отображаться)
Выше приведено введение в операции, связанные с обработкой изображений Java, я надеюсь, что это будет полезно для каждого обучения.