Необходимо изменить размер Android ImageView, чтобы он соответствовал изменению размера Drawable.

Я хотел бы иметь возможность изменять размер некоторых моих изображений ImageView в зависимости от того, что они показывают Drawable. Я еще не решил, заставлю ли я их читать новые размеры из Drawable или у меня будет просто массив/перечисление, хранящее их высоты, но мне нужна помощь с фактическим изменением ImageView размер.

Какую из многих функций для изменения размеров вещей я должен использовать для изменения размера ImageView, сохраняя при этом его относительное позиционирование в RelativeLayout, частью которого он является? Я не могу понять, должен ли я менять границы Drawable или мне следует переопределять LayoutParams ImageView или какой-либо другой метод вообще. Drawables всегда будут иметь одинаковую ширину, но их высота будет меняться в зависимости от того, что находится в каждой плитке карты (которая рендерится).


person Zulaxia    schedule 27.08.2010    source источник


Ответы (1)


Возможно, я что-то упускаю здесь, но вам, вероятно, следует просто использовать:

<ImageView
    android:id="@+id/image_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/image_content"
    />

Использование wrap_content приведет к тому, что ImageView примет форму того, что вы вставляете.

person Kevin Coppock    schedule 27.08.2010
comment
На самом деле это то, с чего я начал, и у меня были реальные проблемы с масштабированием вещей до неправильного относительного размера, отсюда и дополнительная сложность. Однако после того, как вы это сказали, я понял, что должен вернуться к нему, и простое добавление maxwidth= заставило его вести себя так, как я хотел. Теперь они сохраняют относительную ширину, которую я хочу, но масштабируются, чтобы соответствовать рисунку в другом измерении. - person Zulaxia; 27.08.2010
comment
Рад, что у вас все заработало! Думая об этом, я еще ничего не сделал, чтобы изменить рисуемый код в коде, поэтому я не знаю, как именно он справляется с масштабированием. - person Kevin Coppock; 27.08.2010