Android ImageView изменяет свойство maxHeight через код - PullRequest
0 голосов
/ 23 ноября 2018

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

Большинство вставляемых изображений - горизонтальные, но некоторые изображения вертикальные. Для вертикальных изображений Iхочу изменить свойство maxHeight моего ImageView программно.Поэтому я поставил приблизительную проверку, если (высота> (ширина * 1,3))

Это мой Imageview xml

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@null"
android:maxHeight="200dp"
android:scaleType="fitCenter" />

И это мой код:

if (h > (1.3 * w)) {
    imageView.setMaxHeight(500);
}

Но это не работает.Кто-нибудь может сказать мне, почему и каково решение?

1 Ответ

0 голосов
/ 23 ноября 2018

Поскольку ваше значение 500 является значением пикселя.Итак, я думаю, вам нужно конвертировать 500 в соответствующее значение dp.Попробуйте использовать это:

    private int dpToPx(int dp, Activity activity) {
        Resources r = activity.getResources();
        return Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics()));
    }

и измените свой код на это:

if (h > (1.3 * w)) {
    imageView.setMaxHeight(dpToPx(500, this));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...