Android ImageView выравнивает фон - PullRequest
0 голосов
/ 22 февраля 2020

TL; DR: Выглядит отлично при установке рисования для ImageView (см. Вложение - вверху). Замена его растровым изображением (setImageBitmap) и повторная установка в исходное состояние (setImageBitmap (null) и setBackgroundResource (R ...)) приводит к растягиванию рисованного элемента (см. Atachment - bottom).

Элемент ImageView при запуске приложения имеет изображение ресурса, и оно выглядит нормально и не растягивается. Если пользователь ставит свой знак с помощью другого действия, ImageView используется для отображения небольшого эскиза своего знака, а ImageView перезаписывается с помощью setImageBitmap ().

Проблема возникает, когда пользователь сохраняет черновик и все поля опустошаются. Очистка включает в себя setImageBitmap (null) и setBackGroundResource (R.drawable.ACTUAL_IMAGE_OF_IMG_VIEW).

После сброса ImageView (удаление растрового изображения и установка фактического фона) фоновое изображение растягивается (см. Прилагаемое изображение):

ImageView - Before & After

При изменении ориентации устройства (альбомная и книжная) изображение снова становится нормальным. Кроме того, на фоне изображения есть линии сетки, которые абсолютно не проистекают из исходного изображения.

Хотелось бы услышать, как Вы решите это.

Редактировать - Код:

// Inserting Bitmap
private void insertSignature(){
    ivSign.setImageBitmap(signature);
}
// setting signature -> null and adding icon again as background
private void ResetInputFields(){
    ivSign.setImageBitmap(null);
    ivSign.setBackgroundResource(R.drawable.sign_pen);
    // TRIED ALREADY:
    // ivSign.setBackground(getResources().getDrawable(R.drawable.sign_pen));
}

1 Ответ

0 голосов
/ 23 февраля 2020

добавьте к вашему imageView XML код

 android:scaleType="fitCenter"

или

 android:scaleType="centerInside"

, и он сохранит свое первоначальное соотношение

...