Android центр изображение внутри match_parent - PullRequest
1 голос
/ 22 мая 2019

Центрирование изображения внутри ImageView, в котором для ширины и высоты установлено значение match_parent

ImageView

<ImageView
    android:adjustViewBounds="true"
    android:id="@+id/iv_Image"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:scaleType="matrix"
    android:src="@drawable/test_image" />

scaleType установлено в «matrix» из-за использования событий масштабирования и касания.

Как центрировать изображение внутри ImageView.

1 Ответ

1 голос
/ 22 мая 2019

Сначала получите устройство Ширина и Высота

DisplayMetrics displayMetrics = new DisplayMetrics();
float dpHeight = displayMetrics.heightPixels / displayMetrics.density;
float dpWidth = displayMetrics.widthPixels / displayMetrics.density;

Рассчитать ImageView CenterX, используя image_width

float imageCenterX = (displayMetrics.widthPixels - image_width) / 2;

Рассчитать ImageView CenterY, используя image_height

float imageCenterY = image_height > displayMetrics.heightPixels/2 ? 0 : dpHeight/2

Установить новую матрицу для изображения

Matrix matrix_ = new Matrix();
matrix_.postTranslate(imageCenterX, imageCenterY);
ivImageView.setImageMatrix(matrix_);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...