android 將文字轉為為圖片
阿新 • • 發佈:2018-11-12
專案介紹:
將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(); } } }); } }
專案下載:點選這裡