Я пытаюсь выяснить, как определить вертикальную линию (толщиной 1 дп), которая будет использоваться как рисование.
Чтобы сделать горизонтальный, это довольно просто:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
<stroke android:width="1dp" android:color="#0000FF"/>
<size android:height="50dp" />
</shape>
Вопрос в том, как сделать эту линию вертикальной?
Да, есть обходные пути, такие как рисование прямоугольника в форме толщиной 1 пиксель, но это усложняет прорисовываемый XML, если он состоит из нескольких <item>
элементов.
У кого-нибудь был шанс с этим?
ОБНОВИТЬ
Дело до сих пор не раскрыто. Тем не менее, для тех, кто участвует в крестовом походе по документации Android - вам может пригодиться это: Отсутствует руководство по XML для Android
ОБНОВИТЬ
Я не нашел другого пути, кроме того, который я отметил как правильный. Это делает трюк, хотя кажется немного "тяжелым", поэтому, если вам случится знать ответ, не забудьте поделиться;)
Вы можете вкладывать свою форму в тег поворота.
Однако единственная проблема заключается в том, что параметры макета, определенные в макете XML, будут размерами, используемыми для рисования исходной фигуры. Это означает, что если вы хотите, чтобы ваша строка была 30dp высотой, вам нужно определить layout_width 30dp в вашем макете xml. Но конечная ширина также будет 30dp в этом случае, что, вероятно, нежелательно для большинства ситуаций. По сути, это означает, что ширина и высота должны быть одним и тем же значением, значением желаемой длины линии. Я не мог понять, как это исправить.
Похоже, это решение «android way», но если я не упомяну о каком-либо исправлении или обходном пути к проблеме размеров, то, скорее всего, это не сработает для большинства людей. Что нам действительно нужно, так это атрибут ориентации в <shape /> или <stroke />.
Вы также можете попробовать сослаться на другой объект рисования в атрибутах тега поворота, например:
Однако я не проверял это и ожидаю, что у него будут те же проблемы.
-- РЕДАКТИРОВАТЬ --
О, я действительно нашел решение Вы можете использовать отрицательную границу в своем макете XML, чтобы избавиться от нежелательного дополнительного пространства. Такие как:
источник
Вы можете использовать атрибут поворота
источник
Работает для меня . Поместите это как фон представления с fill_parent или фиксированным размером в высоту dp
источник
Я придумал другое решение. Идея состоит в том, чтобы сначала заполнить нарисованное цветом того цвета, который вам нравится, а затем снова заполнить всю область цветом фона, используя отступы влево или вправо. Очевидно, что это работает только для вертикальной линии в крайнем левом или правом углу вашей карты.
источник
showDividers="middle"
). Чтобы получить 2dp делитель, мне нужно было указатьandroid:left="3dp"
здесь.@android:color/transparent
вместо жесткого кодирования@color/background_color
.wrap_content
.Я думаю, что это самое простое решение:
источник
android:height
к ,size
если вы хотите контролировать также , что измерение.Мне нужно было добавлять свои представления динамически / программно, поэтому добавление дополнительного представления было бы обременительным. Высота моего вида была WRAP_CONTENT, поэтому я не мог использовать прямоугольное решение. Я нашел записи блога здесь о расширении TextView, перекрывая OnDraw () и живописи в линии, так что я осуществил это , и это хорошо работает. Смотрите мой код ниже:
Мне нужна вертикальная линия слева, но параметры линии рисования таковы,
drawLine(startX, startY, stopX, stopY, paint)
что вы можете нарисовать любую прямую линию в любом направлении поперек вида. Тогда в моей деятельности яNoteTextView note = new NoteTextView(this);
надеюсь, что это помогает.источник
это очень просто ... добавить вертикальную линию в Android XML ...
источник
Зависит от того, где вы хотите иметь вертикальную линию, но если вы хотите, например, вертикальную границу, у родительского вида может быть фон, который можно нарисовать по своему усмотрению. И тогда вы можете определить рисование следующим образом:
В этом примере будет создана тонкая черная линия с разрешением 1 дп с правой стороны вида, которая будет отображаться в качестве фона.
источник
источник
Похоже, никто не упомянул эту опцию:
источник
Вы можете использовать форму, но вместо линии сделать ее прямоугольником.
и в вашем макете используйте это ...
Возможно, вам придется поиграть с шириной, в зависимости от размера штрихов, чтобы вывести ее в одну строку.
Надеюсь, что это помогает Ура
источник
источник
Чтобы сделать вертикальную линию, просто используйте прямоугольник шириной 1 дп:
Не используйте
stroke
, используйтеsolid
(который является цветом «заливки»), чтобы указать цвет линии.источник
источник