1. 程式人生 > >android 將文字轉為為圖片

android 將文字轉為為圖片

專案介紹:

將android 專案assets中的1.txt文件中的文字轉換成一張圖片

第一步:建立工具類,用於讀取文件,存入一個String陣列, 程式碼如下:

 

package test.com;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class TextProperty {
		private int heigt;		//讀入文字的行數
		private String []context = new String[1024];	//儲存讀入的文字  
		/*
		 *@parameter wordNum  設定每行顯示的字數
		 * 建構函式將文字讀入,將每行字串切割成小於等於35個字元的字串  存入字元陣列
		 * 
		 */
		public TextProperty(int wordNum ,InputStreamReader in) throws Exception {
		int i=0;
		BufferedReader br = new BufferedReader(in);
		String s;
		while((s=br.readLine())!=null){	
			//讀入時去掉  空白的行  
//			if(s.trim().equals("")){
//				continue;
//			}
			 if(s.length()>wordNum){
			   int k=0;
			   while(k+wordNum<=s.length()){
				 context[i++] = s.substring(k, k+wordNum);
				   k=k+wordNum;
			   }
			   context[i++] = s.substring(k,s.length());
			}
			else{
				context[i++]=s;
			}
		}
		this.heigt = i;
		in.close();
		br.close();
		}


		public int getHeigt() {
			return heigt;
		}

		public String[] getContext() {
			
			return context;
		}
		

		
}

第二步:讀入具體文件,將之轉換成圖片

package test.com;



import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

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

public class TestActivity extends Activity {
    private Button btn;
    private final int WORDNUM = 35;  //轉化成圖片時  每行顯示的字數
    private final int WIDTH = 450;   //設定圖片的寬度
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn = (Button) findViewById(R.id.ok);
        btn.setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				int x=5,y=10;
				try {
				TextProperty tp = new TextProperty(WORDNUM, new InputStreamReader(getResources().getAssets().open("1.txt")));
				Bitmap bitmap = Bitmap.createBitmap(WIDTH, 20*tp.getHeigt(), Config.ARGB_8888);
				Canvas canvas = new Canvas(bitmap);
				Paint paint = new Paint();
				String [] ss = tp.getContext();
					for(int i=0;i<tp.getHeigt();i++){
					canvas.drawText(ss[i], x, y, paint);
					y=y+20;
					}
				
				canvas.save(Canvas.ALL_SAVE_FLAG);
				canvas.restore();
				String path = Environment.getExternalStorageDirectory() + "/image.png";
			    System.out.println(path);
					FileOutputStream os = new FileOutputStream(new File(path));
					bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
					os.flush();
					os.close();
				}
				   catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
			}
		});
    }
}


專案下載:點選這裡