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 color 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 Rectangle. Finally,b 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
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >
  6. <TextView
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:text="Text" />
  10. </LinearLayout>
Step 3
Create a Java file as in the following:
  1. package com.SampleCanvas;
  2. import android.app.Activity;
  3. import android.graphics.Color;
  4. import android.os.Bundle;
  5. public class Second extends Activity {
  6. SampleCanvasActivity drawView;
  7. @Override
  8. public void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. drawView = new SampleCanvasActivity(this);
  11. drawView.setBackgroundColor(Color.GRAY);
  12. setContentView(drawView);
  13. }
  14. }
Step 4
Create another Java file as in the following:
  1. package com.SampleCanvas;
  2. import java.util.ArrayList;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.graphics.Bitmap;
  6. import android.graphics.BitmapFactory;
  7. import android.graphics.Canvas;
  8. import android.graphics.Color;
  9. import android.graphics.Paint;
  10. import android.graphics.Path;
  11. import android.graphics.Rect;
  12. import android.graphics.RectF;
  13. import android.graphics.drawable.Drawable;
  14. import android.os.Bundle;
  15. import android.view.Gravity;
  16. import android.view.MotionEvent;
  17. import android.view.SurfaceHolder;
  18. import android.view.SurfaceView;
  19. import android.view.View;
  20. import android.view.View.OnTouchListener;
  21. import android.view.ViewGroup.LayoutParams;
  22. import android.view.Window;
  23. import android.view.WindowManager;
  24. import android.widget.EditText;
  25. import android.widget.FrameLayout;
  26. import android.content.Context;
  27. import android.graphics.Canvas;
  28. import android.graphics.Color;
  29. import android.graphics.Paint;
  30. import android.view.View;
  31. import android.widget.ImageView;
  32. import android.widget.LinearLayout;
  33. import android.widget.RelativeLayout;
  34. public class SampleCanvasActivity extends View {
  35. Paint paint = new Paint();
  36. public SampleCanvasActivity(Context context) {
  37. super(context);
  38. }
  39. @Override
  40. public void onDraw(Canvas canvas) {
  41. paint.setColor(Color.BLACK);
  42. paint.setStyle(Paint.Style.STROKE);
  43. paint.setStrokeWidth(5);
  44. canvas.drawRect(730, 430, 40, 20, paint);
  45. Paint paint2=new Paint();
  46. paint2.setTextSize(35);
  47. canvas.drawText("Deposit Ammount in your account", 140- paint2.getTextSize(), 100, paint2);
  48. paint.setTextSize(25);
  49. canvas.drawText("Enter Amount", 300- paint2.getTextSize(), 200, paint2);
  50. /*ImageView imageView = new ImageView(getContext());
  51. Bitmap mainImage = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
  52. imageView.setImageBitmap( mainImage );*/
  53. // Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.iamge1);
  54. //canvas.drawBitmap(bitmap, 120, 500, null);
  55. //canvas.drawBitmap(bitmap, 150, 500, null);
  56. // layout.setGravity(Gravity.BOTTOM);
  57. //paint.setStyle(Paint.Style.STROKE);
  58. // paint.setColor(Color.WHITE);
  59. //canvas.drawRect(130, 130, 80, 80, paint);
  60. //paint.setColor(Color.BLACK);
  61. //canvas.drawText("SomeText",25,20,paint);
  62. //paint.setTextSize(20);
  63. //canvas.drawText("Some Text", 10, 25, paint);
  64. /* canvas.drawRect(33, 60, 77, 77, paint );
  65. paint.setColor(Color.YELLOW);
  66. canvas.drawRect(33, 33, 77, 60, paint );*/
  67. }
  68. }
Step 5
Android Manifest.xml file
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.SampleCanvas"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6. <uses-sdk android:minSdkVersion="6" />
  7. <application
  8. android:icon="@drawable/ic_launcher"
  9. android:label="@string/app_name" >
  10. <activity
  11. android:name=".Second"
  12. android:label="@string/app_name" >
  13. <intent-filter>
  14. <action android:name="android.intent.action.MAIN" />
  15. <category android:name="android.intent.category.LAUNCHER" />
  16. </intent-filter>
  17. </activity>
  18. </application>
  19. </manifest>
Step 6
Clipboard02.jpg
Now you have text inside the rectangle using the Canvas.