Create Draw straight line above Canvas in android programmatically

How to dynamically generate line on canvas at application run time on activity screen on button click.

In this tutorial we are creating an straight line just above the canvas using canvas.drawLine() method. On the line drawing time android app developer can easily manage the line length. So here is the complete step by step tutorial for Create Draw straight line above Canvas in android programmatically

android-project-download-code-button

How to Create Draw straight line above Canvas in android programmatically.

Code for MainActivity.java file.

 package com.drawlineabovecanvas_android_examples.com;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {

 Bitmap bitmap;
 Canvas canvas;
 Paint paint;
 ImageView imageview;
 Button button;
 int LineLength = 70;
 int height,width;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 imageview = (ImageView)findViewById(R.id.imageView1);
 button = (Button)findViewById(R.id.button1);
 
 button.setOnClickListener(new View.OnClickListener() {
 
 @Override
 public void onClick(View v) {
 // TODO Auto-generated method stub
 
 CreateBitmap();

 CreateCanvas();
 
 CreatePaint();
 
 height = canvas.getHeight();
 width = canvas.getWidth();
 
 DrawLine();
 
 imageview.setImageBitmap(bitmap);
 
 }
 });
 }
 
 public void CreateBitmap(){
 
 bitmap = Bitmap.createBitmap(
 400,
 250,
 Bitmap.Config.RGB_565
 );
 
 }
 
 public void CreateCanvas(){
 
 canvas = new Canvas(bitmap);
 
 canvas.drawColor(Color.CYAN);
 
 }
 
 public void CreatePaint(){
 
 paint = new Paint();
 
 paint.setStyle(Paint.Style.FILL);
 
 paint.setColor(Color.BLUE);
 
 paint.setAntiAlias(true);
 
 }

 public void DrawLine(){
 
 canvas.drawLine(
 LineLength,
 height / 2,
 width - LineLength,
 height / 2,
 paint
 );
 
 }
}

Code for activity_main.xml layout file.

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context="com.drawlineabovecanvas_android_examples.com.MainActivity" >

 <ImageView
 android:id="@+id/imageView1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentTop="true"
 android:layout_centerHorizontal="true"
 />

 <Button
 android:id="@+id/button1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerHorizontal="true"
 android:layout_centerVertical="true"
 android:text="Click here to Draw straight line above Canvas in android programmatically" />

</RelativeLayout>

Screenshot:

Create Draw straight line above Canvas in android programmatically

Click here to download Create Draw straight line above Canvas in android programmatically project with source code.

Leave a Reply

Your email address will not be published. Required fields are marked *