╔══════════════════════════════════════════════╗ ^
║ ImageView ╔══════════════╗ ║ |
║ ║ ║ ║ |
║ ║ Actual image ║ ║ |
║ ║ ║ ║ |60px height of ImageView
║ ║ ║ ║ |
║ ║ ║ ║ |
║ ╚══════════════╝ ║ |
╚══════════════════════════════════════════════╝
<------------------------------------------------>
90px width of ImageView
У меня есть вид изображения с некоторой высотой и шириной по умолчанию, изображения хранятся в БД, и я хочу масштабировать изображение в соответствии с шириной изображения. Поскольку я не хочу, чтобы это давало значения по умолчанию, потому что, когда я изменяю его высоту и ширину, я также должен изменить это в коде.
Я пытаюсь получить высоту и ширину ImageView, но мне возвращается 0 в обоих случаях.
int height = ((ImageView) v.findViewById(R.id.img_ItemView)).getHeight();
это возвращает мне 0, даже если у него есть высота и ширина по умолчанию
android:scaleType="centerInside"
?Ответы:
Мой ответ на этот вопрос может помочь вам:
Затем вы можете добавить свою работу по масштабированию изображения из метода onPreDraw ().
источник
Я просто установил это свойство, и теперь Android OS заботится обо всем.
Используйте это в вашем layout.xml, где вы посадили свой ImageView: D
источник
Я мог бы получить ширину и высоту изображения по его рисованию;
источник
Причина, по которой размеры ImageView равны 0, заключается в том, что когда вы запрашиваете их, представление все еще не выполнило шаги макета и измерения. Вы только сказали представлению, как оно будет «вести себя» в макете, но все равно не рассчитали, куда поместить каждое представление.
Как вы решаете, какой размер придать изображению? Разве вы не можете просто использовать один из встроенных вариантов масштабирования?
источник
Сообщение в теме пользовательского интерфейса работает для меня.
источник
Ваш XML-файл:
Ваш файл Java:
источник
Я думаю, вы можете позволить ОС Android позаботиться об этом за вас. Установите тип масштаба для ImageView,
fitXY
и изображение, которое оно отображает, будет иметь размер, соответствующий текущему размеру представления.источник
Самый простой способ - получить ширину и высоту ImageView в методе действия onWindowFocusChanged.
источник
Если вы создали несколько изображений динамически, попробуйте следующее:
// инициализируем массив изображений
// создаем программно и добавляем в родительский вид
// Это оно. Удачного кодирования.
источник
Мой друг этим вы не получаете высоту изображения, хранящегося в db.но вы получаете высоту вида
источник