si quiero agregar una línea en alguna otra actividad como R.layout.main ¿Cómo puedo agregar?
mohan
1
El diseño de su actividad debe contener un objeto Ver, entonces no hay problema. Solo necesita un objeto Ver para dibujar
DonGru
1
Quiero dibujar una línea recta, ¿cómo puedo dar el valor startx start y stopx stopy?
mohan
En realidad, puede encontrar que en la referencia del desarrollador de Android, drawLine () tiene los siguientes argumentos: drawLine (float startX, float startY, float stopX, float stopY, Paint paint)
DonGru
Trazo una línea en el fondo usando este método. Quiero borrar una línea dibujada. Cualquier sugerencia para mi. Me puedes sugerir?
tientuyen07
240
Si desea tener una Línea simple en su Diseño para separar dos vistas, puede usar una Vista genérica con la altura y el ancho que desea que tenga la línea y un color de fondo establecido.
Con este enfoque, no necesita anular una vista o usar un lienzo solo, simple y limpio, agregue la línea en xml.
El código de ejemplo que proporcioné generará una línea que llena el ancho de la pantalla y tiene una altura de un dp.
Si tiene problemas con el dibujo de la línea en pantallas pequeñas, considere cambiar la altura de la línea a px. El problema es que en una pantalla ldpi la línea tendrá una altura de 0,75 píxeles. Algunas veces esto puede resultar en un redondeo que hace que la línea se desvanezca. Si esto es un problema para su diseño, defina el ancho de la línea como un archivo de recursos y cree un archivo de recursos separado para pantallas pequeñas que establezca el valor en 1px en lugar de 1dp.
Este enfoque solo se puede usar si desea líneas horizontales o verticales que se utilizan para dividir elementos de diseño. Si desea lograr algo como una cruz que se dibuja en una imagen, mi enfoque no funcionará.
Si solo necesita una línea recta horizontal o vertical, entonces la forma más fácil puede ser simplemente usar una Viewen su archivo de diseño xml. Harías algo como esto:
Aquí hay una imagen con dos líneas (una horizontal y otra vertical) para mostrar cómo se vería:
Y aquí está el diseño completo de xml para eso:
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:padding="10dp"android:text="TextView1 in vertical linear layout"/><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:background="@android:color/black"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:padding="10dp"android:text="TextView2 in vertical linear layout"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="100dp"android:layout_height="100dp"android:padding="10dp"android:text="TextView3 in horizontal linear layout"/><Viewandroid:layout_width="1dp"android:layout_height="match_parent"android:background="@android:color/black"/><TextViewandroid:layout_width="100dp"android:layout_height="100dp"android:padding="10dp"android:text="TextView4 in horizontal linear layout"/></LinearLayout></LinearLayout>
eres un genio hermano ... He estado tratando de descubrir cómo obtienen las coordenadas mientras dibujan una vista usando pintura ... pero la imagen que has publicado me ayudó a entenderlo bastante ... ¿Hay ¿alguna herramienta en línea para simular ese gráfico, así que lo uso mientras codifico?
¿Es posible recibir una devolución de llamada para saber que la vista se ha terminado de dibujar
Estoy tratando de dibujar dos líneas diferentes. Una vez que se haya dibujado la primera línea, tengo que dibujar la segunda ...
¿Por qué no dibujas ambas líneas en el mismo dibujo?
Suragch
1
@ tientuyen07, si está utilizando onDraw(), rodee su código de dibujo con if (someCondition) { draw... }, haga someCondition = false, y luego llame invalidate()a su vista. Redibujará la vista sin la línea.
Suragch
22
Puede dibujar varias líneas rectas a la vista usando el ejemplo de pintura con dedos que se encuentra en el desarrollador de Android.
enlace de ejemplo
Respuestas:
Este dibuja 2 líneas que forman una cruz en la parte superior izquierda de la pantalla:
DrawView.java
La actividad para iniciarlo:
StartDraw.java
fuente
Si desea tener una Línea simple en su Diseño para separar dos vistas, puede usar una Vista genérica con la altura y el ancho que desea que tenga la línea y un color de fondo establecido.
Con este enfoque, no necesita anular una vista o usar un lienzo solo, simple y limpio, agregue la línea en xml.
El código de ejemplo que proporcioné generará una línea que llena el ancho de la pantalla y tiene una altura de un dp.
Si tiene problemas con el dibujo de la línea en pantallas pequeñas, considere cambiar la altura de la línea a px. El problema es que en una pantalla ldpi la línea tendrá una altura de 0,75 píxeles. Algunas veces esto puede resultar en un redondeo que hace que la línea se desvanezca. Si esto es un problema para su diseño, defina el ancho de la línea como un archivo de recursos y cree un archivo de recursos separado para pantallas pequeñas que establezca el valor en 1px en lugar de 1dp.
Este enfoque solo se puede usar si desea líneas horizontales o verticales que se utilizan para dividir elementos de diseño. Si desea lograr algo como una cruz que se dibuja en una imagen, mi enfoque no funcionará.
fuente
Hay dos formas principales de dibujar una línea, usando a
Canvas
o usando aView
.Dibujando una línea con lienzo
De la documentación vemos que necesitamos usar el siguiente método:
Aquí hay una foto:
El
Paint
objeto solo dice deCanvas
qué color pintar la línea, qué tan ancho debe ser, y así sucesivamente.Aquí hay un código de muestra:
Dibujar una línea con vista
Si solo necesita una línea recta horizontal o vertical, entonces la forma más fácil puede ser simplemente usar una
View
en su archivo de diseño xml. Harías algo como esto:Aquí hay una imagen con dos líneas (una horizontal y otra vertical) para mostrar cómo se vería:
Y aquí está el diseño completo de xml para eso:
fuente
onDraw()
, rodee su código de dibujo conif (someCondition) { draw... }
, hagasomeCondition = false
, y luego llameinvalidate()
a su vista. Redibujará la vista sin la línea.Puede dibujar varias líneas rectas a la vista usando el ejemplo de pintura con dedos que se encuentra en el desarrollador de Android. enlace de ejemplo
Solo comente:
mPath.quadTo(mX, mY, (x + mX)/2, (y + mY)/2);
podrá dibujar líneas rectas.fuente
fuente
para línea horizontal en el diseño:
para línea vertical en el diseño:
fuente
Uno simple
fuente
Esto creará una línea horizontal recta, ¡espero que ayude!
fuente
Puede hacer un dibujo como círculo, línea, rectángulo, etc. a través de formas en xml de la siguiente manera:
fuente
este código agrega línea horizontal a un diseño lineal
fuente
fuente
Para mejorar las respuestas proporcionadas por @Janusz
Agregué esto a mis estilos:
Luego, en mis diseños hay menos código y es más fácil de leer.
si desea hacer un espaciado de línea horizontal, haga lo anterior.
Y para la línea vertical entre dos Vistas, debe reemplazar android: layout_width parámetros (atributos) con android: layout_height
fuente
Otro enfoque para dibujar una línea mediante programación usando ImageView
fuente
Si está trabajando con
ConstraintLayout
, necesita definir al menos 2 restricciones para que aparezca la línea. Me gusta esto:Aunque definí 3 restricciones.
fuente
o si solo quieres una línea
fuente