Cómo dibujar una línea en Android

Resuelto mohan asked hace 54 años • 16 respuestas

¿Alguien puede decirme cómo dibujar una línea en Android, quizás con un ejemplo?

mohan avatar Jan 01 '70 08:01 mohan
Aceptado

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 usted mismo, simplemente agregue la línea en xml.

<View
 android:layout_width="match_parent"
 android:layout_height="1dp"
 android:background="@android:color/black" />

El código de ejemplo que proporcioné generará una línea que ocupa el ancho de la pantalla y tiene una altura de un dp.

Si tienes problemas con el dibujo de la línea en pantallas pequeñas considera 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. A veces esto puede resultar en un redondeo que hace que la línea desaparezca. Si esto es un problema para su diseño, defina el ancho de la línea de 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 utilizar si desea líneas horizontales o verticales que se utilicen para dividir elementos de diseño. Si desea lograr algo como una cruz dibujada en una imagen, mi enfoque no funcionará.

Janusz avatar Nov 04 '2011 10:11 Janusz

Éste dibuja 2 líneas que forman una cruz en la parte superior izquierda de la pantalla:

DrawView.java

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class DrawView extends View {
    Paint paint = new Paint();

    private void init() {
        paint.setColor(Color.BLACK);
    }

    public DrawView(Context context) {
        super(context);
        init();
    }

    public DrawView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public DrawView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    @Override
    public void onDraw(Canvas canvas) {
            canvas.drawLine(0, 0, 20, 20, paint);
            canvas.drawLine(20, 0, 0, 20, paint);
    }

}

La actividad para iniciarla:

IniciarDraw.java

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;

public class StartDraw extends Activity {
    DrawView drawView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        drawView = new DrawView(this);
        drawView.setBackgroundColor(Color.WHITE);
        setContentView(drawView);

    }
}
DonGru avatar Sep 01 '2010 09:09 DonGru