Гадкие картинки, проблемы с рендерингом и поддержка нескольких экранов - PullRequest
0 голосов
/ 17 октября 2011

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

enter image description here enter image description here

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

Почему иногда, когда я помещаю какое-то изображение в качестве фона даже с некоторыми градиентами и так далее, оно работает просто отлично, а иногда нет?

У меня был опыт, когда у меня был линейный макет с фоном, и когда размер макета был wrap_content, скажем, 77dip, это выглядело очень некрасиво (с царапинами в середине), и когда я помещал высоту 78 или 76dip, фон выглядел как фоночень хорошо, снова на 73dip царапины в средней посуде показано.Я никогда не понимаю этого странного поведения, может кто-нибудь, пожалуйста, проясните это и как лучше всего делать подобные вещи.

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

Ответы [ 2 ]

0 голосов
/ 17 октября 2011

Я думаю, что у вас проблемы с полосами / дизерингом.

Причина проблемы в том, что экран не может соответствовать именно тому цвету, который вам нужен, и "округлит" его до ближайшего возможного значения.,Это может привести к плохим результатам на изображениях с прогрессивными цветами, такими как градиенты.

См. Эту ссылку: http://www.curious -creature.org / 2010/12/08 / bitmap-quality-banding-and-dithering /

Включение дизеринга должно помочь вам.

0 голосов
/ 17 октября 2011

Используйте 9-patch tool для создания масштабируемого изображения 9-patch.После того, как вы создадите изображение, используя это, оно будет поддерживать все разрешения экрана и в большинстве случаев будет выглядеть одинаково в каждом разрешении.

Дополнительная информация о растягиваемых исправлениях в изображении с 9 участками .

Хороший учебник с отличными примерами: http://android10.org/index.php/articlesother/279-draw-9-patch-tutorial

...