Asked  7 Months ago    Answers:  2   Viewed   37 times

Can anybody tell how to draw a line in Android, perhaps with an example?

 Answers

87

This one draws 2 lines which form a cross on the top left of the screen:

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);
    }

}

The activity to start it:

StartDraw.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);

    }
}
Tuesday, June 1, 2021
 
brombeer
answered 7 Months ago
41

i think below codes can give some ideas about drawing

enter image description here

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.RadioButton;
import android.widget.RelativeLayout;

public class MainActivity extends Activity {

      DrawView drawView;
      RadioButton r1,r2,r3,r4;    
      RelativeLayout rl1;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            r1 =(RadioButton)findViewById(R.id.radioButton1);
            r2 =(RadioButton)findViewById(R.id.radioButton2);
            r3 =(RadioButton)findViewById(R.id.radioButton3);
            r4 =(RadioButton)findViewById(R.id.radioButton4);

            rl1 =(RelativeLayout)findViewById(R.id.rl1);

            r1.setOnCheckedChangeListener(new OnCheckedChangeListener() {               
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    r2.setChecked(false);
                    r3.setChecked(false);
                    r4.setChecked(false);
                    drawView = new DrawView(MainActivity.this,r4,r1);
                    drawView.setBackgroundColor(Color.WHITE);
                    rl1.addView(drawView);                  
                }
            });

            r2.setOnCheckedChangeListener(new OnCheckedChangeListener() {               
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    r1.setChecked(false);
                    r3.setChecked(false);
                    r4.setChecked(false);
                    drawView = new DrawView(MainActivity.this,r1,r2);
                    drawView.setBackgroundColor(Color.WHITE);
                    rl1.addView(drawView);
                }
            });

            r3.setOnCheckedChangeListener(new OnCheckedChangeListener() {               
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    r2.setChecked(false);
                    r1.setChecked(false);
                    r4.setChecked(false);
                    drawView = new DrawView(MainActivity.this,r2,r3);
                    drawView.setBackgroundColor(Color.WHITE);
                    rl1.addView(drawView);
                }
            });

            r4.setOnCheckedChangeListener(new OnCheckedChangeListener() {               
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {    
                    r2.setChecked(false);
                    r3.setChecked(false);
                    r1.setChecked(false);
                    drawView = new DrawView(MainActivity.this,r3,r4);
                    drawView.setBackgroundColor(Color.WHITE);
                    rl1.addView(drawView);
                }
            });

        }

}

DrawView

import android.annotation.SuppressLint;
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();
    View startView;
    View endView;    

    public DrawView(Context context,View startView,View endView) {
        super(context);
        paint.setColor(Color.YELLOW);        
        this.startView = startView;
        this.endView = endView;
    }

    @SuppressLint("NewApi")
    public void onDraw(Canvas canvas) {
            canvas.drawLine(startView.getX()+25, startView.getY()+50, endView.getX()+25, endView.getY(), paint);
    }

}

activity_main.xml

    <RelativeLayout
        android:id="@+id/rl1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ffffaa" >

    </RelativeLayout>

    <RadioButton
        android:id="@+id/radioButton4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="20dp"
        android:text="RadioButton" />

    <RadioButton
        android:id="@+id/radioButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/radioButton4"
        android:layout_alignParentTop="true"
        android:layout_marginTop="84dp"
        android:text="RadioButton" />

    <RadioButton
        android:id="@+id/radioButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/radioButton4"
        android:layout_marginRight="78dp"
        android:layout_marginTop="32dp"
        android:text="RadioButton" />

    <RadioButton
        android:id="@+id/radioButton3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/radioButton4"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="23dp"
        android:text="RadioButton" />

</RelativeLayout>
Wednesday, August 4, 2021
 
HexaGridBrain
answered 4 Months ago
Only authorized users can answer the question. Please sign in first, or register a free account.
Not the answer you're looking for? Browse other questions tagged :  
Share