Learn How to Draw Text in Canvas In Android

Introduction

This article explains how to draw text inside a rectangle using the canvas in Android. Android Studio is used for the sample..

In this you will first create a paint object. Then call the setColor() method of paint to set the color of the rectangle by ing a colour variable. The setStyle() method sets the style of the rectangle, here I ed Stroke as an argument that sets the rectangle having a stroke on its side.

The setStrokeWidth() method sets the stroke width of the Recatangle. Finallyt I called darwRect() to draw the rectangle. 

I have also drawn the text using the drawText() method of the canvas and also called setTextsize() to change the size of the text.

Step 1

Create a project like this:

Clipboard06.jpg

Step 2

XML file

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

 

    <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="Text" />

 

</LinearLayout>


Step 3

Create a Java file as in the following:

package com.SampleCanvas;

import android.app.Activity;

import android.graphics.Color;

import android.os.Bundle;

 

public class Second extends Activity {

    SampleCanvasActivity drawView;

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

 

        drawView = new SampleCanvasActivity(this);

        drawView.setBackgroundColor(Color.GRAY);

        setContentView(drawView);

    }

}


Step 4

Create another Java file as in the following:

 

package com.SampleCanvas;

 

import java.util.ArrayList;

 

import android.app.Activity;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.graphics.Rect;

import android.graphics.RectF;

import android.graphics.drawable.Drawable;

import android.os.Bundle;

import android.view.Gravity;

import android.view.MotionEvent;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.view.View;

import android.view.View.OnTouchListener;

import android.view.ViewGroup.LayoutParams;

import android.view.Window;

import android.view.WindowManager;

import android.widget.EditText;

import android.widget.FrameLayout;

 

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.view.View;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.RelativeLayout;

 

public class SampleCanvasActivity extends View {

    Paint paint = new Paint();

    public SampleCanvasActivity(Context context) {

        super(context);

    }

 

    @Override

    public void onDraw(Canvas canvas) {

 

        paint.setColor(Color.BLACK);

        paint.setStyle(Paint.Style.STROKE);

        paint.setStrokeWidth(5);

        canvas.drawRect(730, 430, 40, 20, paint);

 

        Paint paint2=new Paint();

        paint2.setTextSize(35);

        canvas.drawText("Deposit Ammount in your account", 140- paint2.getTextSize(), 100, paint2);

        paint.setTextSize(25);

        canvas.drawText("Enter Amount", 300- paint2.getTextSize(), 200, paint2);

 

        /*ImageView imageView = new ImageView(getContext());

        Bitmap mainImage = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);

        imageView.setImageBitmap( mainImage );*/

       // Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.iamge1);

 

        //canvas.drawBitmap(bitmap, 120, 500, null);

        //canvas.drawBitmap(bitmap, 150, 500, null);

 

 

       // layout.setGravity(Gravity.BOTTOM);

       //paint.setStyle(Paint.Style.STROKE);

       // paint.setColor(Color.WHITE);

        //canvas.drawRect(130, 130, 80, 80, paint);

        //paint.setColor(Color.BLACK);

        //canvas.drawText("SomeText",25,20,paint);

        //paint.setTextSize(20);

        //canvas.drawText("Some Text", 10, 25, paint);

       /* canvas.drawRect(33, 60, 77, 77, paint );

        paint.setColor(Color.YELLOW);

        canvas.drawRect(33, 33, 77, 60, paint );*/

 

    }

}


Step 5

Android Manifest.xml file

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.SampleCanvas"

    android:versionCode="1"

    android:versionName="1.0" >

 

    <uses-sdk android:minSdkVersion="6" />

 

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name" >

        <activity

            android:name=".Second"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

 

</manifest>


Step 6

Clipboard02.jpg

Now you have text inside the rectangle using the Canvas.

Up Next
    Ebook Download
    View all
    Learn
    View all