Размер картинки в ListView

Интерфейс, диалоги, темы, стили, меню
Ответить
Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Размер картинки в ListView

Сообщение powercat » 06 фев 2013, 23:58

Камера делает фото и сохраняет картинки в отдельную папку, примерные размеры фоток больше 1000 пикселей по сторонам.

Item ListView инфлейтится из ImageView и TextView. Данные в них берутся из базы, в которой хранится текст для TextView и путь к файлу для ImageView. Подается через массивы from, to.

Используется свой SimpleCursorAdapter, свой, т.к. в TextView я задаю кастомный шрифт.

Вся эта конструкция отлично работает. При этом размеры ImageView меня не устраивают. Я выставляю в xml-ке (котороя инфлейтится), в которой сидят эти элементы для ImageView оба wrap_contentа, и оно пытается занять весь экран, что логично, т.к. картинка в него вписывается (я задал scaleType=fitCenter). Собственно, то, что картинка вписывается, мне нравится, ибо когда я задаю ImageView не оба wrap_contentа, а жесткие значения, например 50пикс*50пикс, то ImageView уменьшается, но картинка остается вписанной и нормально отображается.

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

Как быть? Т.е. - как разноразмерные картинки засунуть в список, ограничив их размер, но оставив возможность масштаба?

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Размер картинки в ListView

Сообщение Finch » 07 фев 2013, 00:08

нужно не пиксельное px значение, а dp
например у меня есть листвью и адаптер от BaseAdapter унаследован, там инфлэйтится ИмэджВьюха со значениями 300dp x 260dp, gravity center_crop, отображается на всех экранах одинаково. px вообще не используй никогда нафиг =)

а вобще вот http://developer.android.com/guide/prac ... pport.html
CEO of a company R.id.team

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Размер картинки в ListView

Сообщение powercat » 07 фев 2013, 09:00

а размер ты в каком месте кода задаешь? В xml или когда адаптер прописываешь? Если в адаптере, то можешь выдернуть кусок с этим кодом сюда?

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Размер картинки в ListView

Сообщение Finch » 07 фев 2013, 14:42

в xml, в адаптере просто ViewHolder и асинхронная загрузка картинки с LruCache, при скроле загрузка на паузу) картинка с FadeIn эффектом появляется только когда лист не скролится. Не имеет значения сколько айтемов в листе, хоть 100500, скролл будет всегда гладким и без лагов, на всех версиях андроид.
CEO of a company R.id.team

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Размер картинки в ListView

Сообщение powercat » 07 фев 2013, 14:52

ну вот я выставлял 50dp в xml...но нифига...так и остался он своими 50 в экране 1200 ))

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Размер картинки в ListView

Сообщение Finch » 07 фев 2013, 16:43

scale type fitxy
CEO of a company R.id.team

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Размер картинки в ListView

Сообщение rezak90 » 07 фев 2013, 21:31

powercat писал(а):ну вот я выставлял 50dp в xml...но нифига...так и остался он своими 50 в экране 1200 ))
для разных размеров экранов разные разрешения задавай, папок values то много =)
R.id.team
Политика на форуме запрещена

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Размер картинки в ListView

Сообщение powercat » 07 фев 2013, 21:49

)))
Только у меня фотки, а не заранее заданные картинки, раскиданные по папкам )))
Или ты предлагаешь, сохранить из исходной фотки другие с разными размерами, и распихать их по папкам? А это возможно?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Размер картинки в ListView

Сообщение rezak90 » 07 фев 2013, 23:00

Нет, я имею в виду что когда ты задаешь бекграунд imageview то потом указываешь ему размеры из dimension'a R.dimen.photo_width и R.dimen.photo_height. При этом в дименсионы раскидать в зависимости от размеров экранов в папки values. Ну и не забудь же про fitxy что бы по центру ресайзило.
R.id.team
Политика на форуме запрещена


Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Размер картинки в ListView

Сообщение powercat » 08 фев 2013, 08:35

rezak90 писал(а):Нет, я имею в виду что когда ты задаешь бекграунд imageview то потом указываешь ему размеры из dimension'a R.dimen.photo_width и R.dimen.photo_height. При этом в дименсионы раскидать в зависимости от размеров экранов в папки values. Ну и не забудь же про fitxy что бы по центру ресайзило.
о..интересный подход, картнику в имеджвью задавать не картинкой, а фоном...да, надо так попробовать....

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Размер картинки в ListView

Сообщение powercat » 08 фев 2013, 08:35

Вроде dp помогает и растягивается )

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Размер картинки в ListView

Сообщение Finch » 08 фев 2013, 14:57

а как ведет себя на sw600dp и sw720dp???
CEO of a company R.id.team

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Размер картинки в ListView

Сообщение rezak90 » 08 фев 2013, 15:16

Finch писал(а):а как ведет себя на sw600dp и sw720dp???
если не указывать для них values то будет брать по дефолту с mdpi или hdpi если не ошибаюсь
R.id.team
Политика на форуме запрещена

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Размер картинки в ListView

Сообщение Finch » 08 фев 2013, 15:40

ну это понятно, просто картинка может выглядеть не ок) я имел ввиду эстэтику)
CEO of a company R.id.team

Ответить