Как поменять высоту и ширину ImageView в xml - PullRequest
0 голосов
/ 14 мая 2019

У меня в xml ImageView вот так:

<ImageView
    android:id="@+id/ivMessage"
    android:layout_width="@dimen/two_hundred_dp"
    android:layout_height="@dimen/one_sixty_dp"
    android:layout_alignParentRight="true"
    android:layout_margin="@dimen/ten_dp"
    android:background="@drawable/rounded_rectangle_white"
    android:scaleType="fitXY"
    android:padding="@dimen/ten_dp"
    tools:src="@drawable/logo" />

но фотографии, которые я получаю с сервера, могут быть в портретном и альбомном режимах, я просто хочу поменять местами эту высоту и ширину, когда что-то подобное произошло. Я пытался преобразовать эти дп программно, но это не работает, и дп изменился. Есть ли какой-то простой способ, которого мне не хватает?

Ответы [ 2 ]

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

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

Шаг 1. Определите, является ли изображение альбомным илипортрет

boolean landscape = false;

if(image.getHeight()>image.getWidth()){
//image is in portrait
landscape = false;
}else{
//image is in landscape
landscape = true;
}

Шаг 2. Изменение высоты и ширины соответственно

if(landscape){
imageView.setWidth(200);
imageView.setHeight(160);
}
else{
imageView.setWidth(160);
imageView.setHeight(200);
}
0 голосов
/ 14 мая 2019

использовать android: AdjustViewBounds и атрибуты maxHeight или minHeight, например:

<ImageView
                android:id="@+id/ivMessage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:maxWidth="@dimen/two_hundred_dp"
                android:maxHeight="@dimen/one_sixty_dp"
                android:adjustViewBounds="true"
                android:layout_margin="@dimen/ten_dp"
                android:background="@drawable/rounded_rectangle_white"
                android:scaleType="fitXY"
                android:padding="@dimen/ten_dp"
                tools:src="@drawable/logo" />
...