直接上代码
public class TextImageConvertion {
//Data fields.
private String text;
private final Rect bounds = new Rect();
private TextPaint textPaint;
private StaticLayout mTextLayout;
private Bitmap bmp;
private Canvas canvas;
//Constructor
public TextImageConvertion(String text){
this.text=text;
}
public void drawAndSaveImage(){
textPaint = new TextPaint() {
{
setColor(Color.WHITE);
setTextAlign(Paint.Align.LEFT);
setTextSize(20f);
setAntiAlias(true);
}
};
textPaint.getTextBounds(text,0, text.length(), bounds);
mTextLayout = new StaticLayout(text, textPaint,
bounds.width(), Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
int maxWidth = -1;
for (int i = 0; i < mTextLayout.getLineCount(); i++) {
if (maxWidth < mTextLayout.getLineWidth(i)) {
maxWidth = (int) mTextLayout.getLineWidth(i);
}
}
bmp = Bitmap.createBitmap(maxWidth , mTextLayout.getHeight(),
Bitmap.Config.ARGB_8888);
bmp.eraseColor(Color.BLACK);// just adding black background
canvas= new Canvas(bmp);
mTextLayout.draw(canvas);
File imageFile=new File(Environment.getExternalStorageDirectory()+"/example.png");
try {
FileOutputStream stream;
stream = new FileOutputStream(imageFile);
bmp.compress(CompressFormat.PNG, 85, stream);
bmp.recycle();
try {
stream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Bitmap getBitmap(){
return bmp;
}
}
参考自stackoverflow:
http://stackoverflow.com/questions/9973048/convert-text-to-image-file-on-android