Как сделать так, чтобы изображение из девяти патчей расширялось только по горизонтали? - PullRequest
2 голосов
/ 10 марта 2012

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

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

Есть идеи?

Спасибо

Ответы [ 4 ]

5 голосов
/ 10 марта 2012

Допустимое изображение из девяти заплаток должно иметь по крайней мере одну расширяемую область сверху и одну слева, области, которые вы рисуете справа и снизу, предназначены для задания отступов, посмотрите на this .

Если вы хотите, чтобы ваше изображение из девяти фрагментов увеличивалось только по горизонтали, вам придется подготовить исходное изображение с желаемой высотой и шириной, равной одному пикселю, и нарисовать точку сверху и другую наСлева обратите внимание, что расширяемая область, которую мы указываем слева, предназначена только для того, чтобы сделать ее действительным патчем из девяти.Теперь вы можете поместить изображение внутри макета (установите высоту для макета, как и у вашего изображения), установите android:layout_graviy="center_vertical" для изображения, затем изображение будет развернуто по горизонтали.

1 голос
/ 05 августа 2014

Я хотел расширить по горизонтали, не портя дизайн левой и правой сторон. Я добавил дополнительные 1px (прозрачный) сверху и снизу изображения. После этого в левой части я добавил черную точку в строке, где я добавил дополнительные отступы. А также расширяемая область в верхней части изображения. Я сделал это для всех 4 различных плотностей, и это будет работать хорошо :)

С помощью шкалы Радли и заполнения я просто рисую черную линию на левой стороне.

Чтобы сделать его вертикально центрированным, как упомянуто в вашем посте, просто добавьте android:layout_graviy="center_vertical" для линейного расположения или android:layout_centerVertical="true" для относительного расположения.

Надеюсь, что это поможет.

0 голосов
/ 01 октября 2018

Посмотрите на следующий пример Пример ссылки , Вы можете установить расширяемую область и иметь горизонтальный расширяющийся девять патчей

0 голосов
/ 10 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...