Línea vertical usando XML dibujable

Estoy tratando de encontrar la manera de definir una línea vertical (1dp de espesor) para usar como dibujable.

Para hacer uno horizontal, es bastante sencillo:

    

La pregunta es, ¿cómo hacer que esta línea sea vertical?

Sí, hay soluciones, como dibujar una forma de rectángulo de 1px de grosor, pero eso complica el XML dibujable, si consta de múltiples .

Alguien tenía alguna posibilidad con esto?

ACTUALIZAR

El caso aún no está resuelto. Sin embargo, para cualquier persona en una cruzada de documentación de Android, puede que le resulte útil: Falta el manual XML de Android

ACTUALIZAR

No encontré otra manera que no sea la que marqué como correcta. Aunque funciona un poco “pesado”, si usted sabe la respuesta, no se olvide de compartir;)

En lugar de una forma, puedes probar una View :

  

Solo he usado esto para líneas horizontales, pero creo que también funcionaría para líneas verticales.

Utilizar:

  

para una linea horizontal

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. Es decir, si desea que su línea tenga una altura de 30dp, 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 sea indeseable para la mayoría de las situaciones. Esto significa esencialmente que tanto el ancho como la altura deben tener el mismo valor, el valor de la longitud deseada para la línea. No pude encontrar la manera de arreglar esto.

Esta parece ser la solución de “camino de Android”, pero a menos que haya una solución o una solución para el problema de dimensiones que menciono, probablemente esto no funcione para la mayoría de las personas. Lo que realmente necesitamos es un atributo de orientación en o .

También puede intentar hacer referencia a otro dibujable en los atributos de la etiqueta de rotación, como por ejemplo:

  

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 adicional no deseado. Como:

  
      

Funciona para mi . Ponlo como fondo de vista con fill_parent o tamaño fijo en altura dp

Puedes usar el atributo rotar

         

Se me ocurrió una solución diferente. La idea es llenar el dibujante primero con el color que prefiera que tenga la línea y luego vuelva a llenar toda el área con el color de fondo mientras usa el relleno izquierdo o derecho. Obviamente, esto solo funciona para una línea vertical en el extremo izquierdo o derecho de su dibujo.

      

Necesitaba agregar mis vistas dinámicamente / programáticamente, 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 de rectángulo. Encontré una publicación de blog aquí sobre la extensión de TextView, sobreescribiendo onDraw () y pintando en la línea, así que lo implementé y funciona bien. Ver mi código a continuación:

 public class NoteTextView extends TextView { public NoteTextView(Context context) { super(context); } private Paint paint = new Paint(); @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); paint.setColor(Color.parseColor("#F00000FF")); paint.setStrokeWidth(0); paint.setStyle(Paint.Style.FILL); canvas.drawLine(0, 0, 0, getHeight(), paint); } } 

Necesitaba una línea vertical a la izquierda, pero los parámetros de drawline 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 tengo NoteTextView note = new NoteTextView(this); Espero que esto ayude.

es muy simple … agregar una línea vertical en Android xml …

  

Depende de dónde desee tener la línea vertical, pero si quiere un borde vertical, por ejemplo, puede hacer que la vista principal tenga un fondo dibujable a medida. Y luego puede definir el dibujable de esta manera:

               

Este ejemplo creará una línea negra delgada de 1 pd en el lado derecho de la vista, que tendrá este dibujable como fondo.

Puede usar una forma, pero en lugar de una línea, conviértalo en rectángulo.

 android:shape="rectangle">  

y en tu diseño utiliza esto …

  

Es posible que deba jugar con el ancho, según el tamaño de los guiones, para colocarlo en una sola línea.

Espero que esto ayude a Cheers

 add this in your styles.xml   then wrap this style in a linear layout where you want the vertical line, I used the vertical line as a column divider in my table.    //...................................................................    //...................................................................  //...............................................................    //...................................................................             .......... ....... ...... 

Para hacer una línea vertical, simplemente use un rectángulo con ancho de 1dp:

     

No utilice stroke , use solid (que es el color de “relleno”) para especificar el color de la línea.

Creo que esta es la solución más simple:

          
          
  ` 

Muy simple y creo que mejor enfoque.

  

underline.xml