In android text to image conversion is very easy. We may need to convert text to image at run time to make it more fancy or to draw it on specific component. For this purpose you have to use canvas, paint and bitmap. Here is code to convert text to image,
Main.java file
package com.android.texttoimage;
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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
public class Main extends Activity implements OnClickListener {
ImageView iv;
Button btn;
EditText tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
iv=(ImageView)findViewById(R.id.iv);
tv=(EditText)findViewById(R.id.tv);
btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(this);
}
public void onClick(View v) {
Bitmap b = Bitmap.createBitmap(200,200,
Bitmap.Config.ARGB_8888);
Canvas cv=new Canvas(b);
Paint paint=new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1);
paint.setColor(Color.MAGENTA);
paint.setTextSize(30);
cv.drawText(tv.getText().toString(), 75, 75, paint);
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
paint.setTextSize(30);
cv.drawText(tv.getText().toString(), 75, 110, paint);
iv.setImageBitmap(b);
}
}
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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
public class Main extends Activity implements OnClickListener {
ImageView iv;
Button btn;
EditText tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
iv=(ImageView)findViewById(R.id.iv);
tv=(EditText)findViewById(R.id.tv);
btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(this);
}
public void onClick(View v) {
Bitmap b = Bitmap.createBitmap(200,200,
Bitmap.Config.ARGB_8888);
Canvas cv=new Canvas(b);
Paint paint=new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1);
paint.setColor(Color.MAGENTA);
paint.setTextSize(30);
cv.drawText(tv.getText().toString(), 75, 75, paint);
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
paint.setTextSize(30);
cv.drawText(tv.getText().toString(), 75, 110, paint);
iv.setImageBitmap(b);
}
}
And here is main.xml,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:layout_width="fill_parent"
android:layout_height="50dp"
android:id="@+id/tv"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button"
android:id="@+id/btn"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv"
android:src="@drawable/icon"/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:layout_width="fill_parent"
android:layout_height="50dp"
android:id="@+id/tv"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button"
android:id="@+id/btn"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv"
android:src="@drawable/icon"/>
</LinearLayout>
There is no need of permissions for this stuff. In this case you can use different sizes, strokes, fonts and colors.
One of the application where I used this stuff is page curl effect. Where I was drawing text on each page.
i have tried Text2Jpg which look awesome and convert any text to a jpg image with or without background custom image.
ReplyDeleteThanks..
Delete