ファイル名「InputTextActivity.java」 いつものActivityファイル
package and.roid.inputtext; import android.app.Activity; import android.graphics.PixelFormat; import android.os.Bundle; import android.view.Display; import android.view.Window; import android.view.WindowManager; public class InputTextActivity extends Activity { public float disp_w,disp_h; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFormat(PixelFormat.TRANSLUCENT); Window window = getWindow(); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); WindowManager manager = window.getWindowManager(); Display disp = manager.getDefaultDisplay(); disp_w = disp.getWidth(); disp_h = disp.getHeight(); setContentView(new InputTextView(this)); } } |
Activityファイルは、一番下の段のコードがたまに変わるだけでいつもこのまま使っています。 完全フルスクリーン仕様&画面の幅、高さを取得しています。 |
ファイル名「InputTextView.java」
package and.roid.inputtext; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import android.content.Context; import android.content.res.AssetManager; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class InputTextView extends View { InputTextActivity activity;//アクティビティクラスの登録準備 String text;//表示文字登録準備 static private final String FILE_PATH = "test1.txt";//ファイルパス //コンテキスト public InputTextView(Context context) { super(context); initInputText(context); } //ここでファイル読み込み private void initInputText(Context context) { //アクティビティクラス登録 activity = (InputTextActivity)context; //ファイル読み込みなど操作するときはtry{}catch{}で囲む try{ //元からあるassetsフォルダに入れたtextファイルを読み込む方法 AssetManager assets = getResources().getAssets(); InputStream in = assets.open(FILE_PATH); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String str; StringBuilder strs = new StringBuilder(); while ((str = br.readLine()) != null) { strs.append(str); } br.close(); text = strs.toString(); }catch (Exception e){ text = "読み込み失敗"; } } //Viewを継承させるとここが自動的に呼ばれる protected void onDraw(Canvas c){ setBackgroundColor(Color.WHITE); super.onDraw(c); Paint p = new Paint(); p.setAntiAlias(true); p.setColor(Color.RED); p.setTextSize(15); c.drawText(text, 0, 100, p); } } |
ファイル読み込み方法は色々な方法があるみたいです。それと読み込み場所も色々あり、アプリケーションに組み込まれたファイル、assetsフォルダに置いてあるファイル、rowフォルダに置くファイル、SDカードから読み込むファイルなどなど。 読み込み方法はどのやりかたも共通なものがあって、 ファイルを読み込むためのメソッドを呼び出す>try{}catch{}の中で読み込む>読み込むためのメソッドを閉じる(終了させる) となっています。 |
実行結果 |
無事に表示できました。 |
今回はわたくしの一番苦手なプログラムになりました。このファイル読み込み系は様々な方法があって、手持ちの本、様々なサイトさんなど見比べてみてもすべて違うのです。 今回は手持ちの本&サイトさんを参考にしました。そのサイトさんは、色々なソースコードでお世話になっているのですが、一番シンプルでわかりやすいのがすごくすばらしいです。 参考サイトさん: 愚鈍人(ファイルアクセスの頁) |
assetsフォルダに入れたtextファイルを読み込み表示 |
|
その1のコードを使用して連続したデータを取り込み分解 |
|
今までの読み込みこんだデータを図形に変換してみた! |
|
アプリケーション専用ファイルでの書き込み読み込み |
|
アプリケーション終了→次回起動時までデータの保持 |