Estoy tratando de descubrir cómo definir una línea vertical (1dp de grosor) para usar como dibujable.
Para hacer una horizontal, es bastante sencillo:
<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>
La pregunta es, ¿cómo hacer que esta línea sea vertical?
Sí, existen soluciones alternativas, como dibujar una forma de rectángulo de 1px de grosor, pero eso complica el XML dibujable, si consta de múltiples <item>
elementos.
¿Alguien tuvo alguna posibilidad con esto?
ACTUALIZAR
El caso aún está sin resolver. Sin embargo, para cualquier persona en una cruzada de documentación de Android, puede encontrar esto útil: Falta el manual XML de Android
ACTUALIZAR
No encontré otra forma que no sea la que marqué como correcta. Sin embargo, hace el truco se siente un poco "pesado", por lo tanto, si sabes la respuesta, no olvides compartirla;)
Puede anidar su forma dentro de una etiqueta de rotación.
Sin embargo, el único problema es que los parámetros de diseño definidos en su diseño xml serán las dimensiones utilizadas para dibujar la forma original. Lo que significa que si desea que su línea tenga 30dp de altura, debe definir un layout_width de 30dp en su diseño xml. Pero el ancho final también será de 30dp en ese caso, lo que probablemente no sea deseable para la mayoría de las situaciones. Esto esencialmente significa que tanto el ancho como la altura deben ser el mismo valor, el valor de la longitud deseada para la línea. No pude averiguar cómo solucionar esto.
Esta parece ser la solución de "modo Android", pero a menos que haya alguna solución o solución para el problema de dimensiones que menciono, es probable que esto no funcione para la mayoría de las personas. Lo que realmente necesitamos es un atributo de orientación en <forma /> o <trazo />.
También puede intentar hacer referencia a otro dibujable en los atributos de la etiqueta de rotación, como:
Sin embargo, no he probado esto y espero que tenga los mismos problemas.
- EDITAR -
Oh, en realidad descubrí una solución. Puede usar un margen negativo en su diseño xml para deshacerse del espacio extra no deseado. Como:
fuente
Puedes usar el atributo rotar
fuente
Funciona para mi . Póngalo como fondo de vista con fill_parent o tamaño fijo en dp height
fuente
Se me ocurrió una solución diferente. La idea es rellenar el dibujo primero con el color que le gusta que sea la línea y luego llenar toda el área nuevamente con el color de fondo mientras se usa el relleno izquierdo o derecho. Obviamente, esto solo funciona para una línea vertical en el extremo izquierdo o derecho de su dibujo.
fuente
showDividers="middle"
). Para obtener un divisor de 2dp, necesitaba especificarandroid:left="3dp"
aquí.@android:color/transparent
lugar de codificación fija@color/background_color
.wrap_content
.Creo que esta es la solución más simple:
fuente
android:height
asize
si desea controlar también esa dimensión.Necesitaba agregar mis vistas de forma dinámica / programática, por lo que agregar una vista adicional hubiera sido engorroso. La altura de mi vista era WRAP_CONTENT, por lo que no pude usar la solución rectangular. Encontré una publicación de blog aquí sobre extender TextView, anular onDraw () y pintar en la línea, así que implementé eso y funciona bien. Vea mi código a continuación:
Necesitaba una línea vertical a la izquierda, pero los parámetros de la línea de dibujo son
drawLine(startX, startY, stopX, stopY, paint)
para que pueda dibujar cualquier línea recta en cualquier dirección a través de la vista. Luego, en mi actividad,NoteTextView note = new NoteTextView(this);
espero que esto ayude.fuente
es muy simple ... agregar una línea vertical en android xml ...
fuente
Depende de dónde desea tener la línea vertical, pero si desea un borde vertical, por ejemplo, puede hacer que la vista principal tenga un fondo dibujable personalizado. Y luego puedes definir el dibujable de esta manera:
Este ejemplo creará una delgada línea negra delgada de 1dp en el lado derecho de la vista, que tendrá este dibujo como fondo.
fuente
fuente
Parece que nadie mencionó esta opción:
fuente
Puedes usar una forma pero en lugar de una línea, hazla rectangular.
y en su diseño use esto ...
Es posible que tenga que jugar con el ancho, dependiendo del tamaño de los guiones, para colocarlo en una sola línea.
Espero que esto ayude a Cheers
fuente
fuente
Para hacer una línea vertical, solo use un rectángulo con un ancho de 1dp:
No use
stroke
, usesolid
(que es el color de "relleno") para especificar el color de la línea.fuente
fuente