| EditTextの縦方向のスクロールについて 
 EditTextを使い縦スクロールできる文章のスクロールを実装しています。
 
 
 
   
 
 
| import android.graphics.Canvas; import android.graphics.Typeface;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 
 import android.text.InputType;
 import android.util.DisplayMetrics;
 import android.view.Gravity;
 import android.view.View;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 //クリックイベント用に追加
 import android.view.View.OnClickListener;
 //ボタンを宣言
 import android.widget.Button;
 //色の宣言
 import android.graphics.Color;
 //ログ出力の宣言
 import  android.util.Log;
 import android.widget.TextView;
 
 public class MainActivity extends AppCompatActivity implements OnClickListener {
 
 private int mWidth = 0;//幅
 private int mHeight = 0;//高さ
 private int mNo1 = 0;
 private int mNo2 = 0;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 mNo1 = View.generateViewId();//TextView
 mNo2 = View.generateViewId();//Button
 
 //Displayは非推奨となりました。
 //画面の高さと幅を取得します。
 DisplayMetrics display = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(display);
 mWidth = display.widthPixels;
 mHeight = display.heightPixels;
 
 String sData = "";
 
 //座標の初期設定
 int x=0;
 int y=0;
 int width=0;
 int height=0;
 
 //相対座標を設定できるようにレイアウトを設定
 RelativeLayout layout = new RelativeLayout(this);
 setContentView(layout);
 
 width = 350;
 height = 300;
 x = (mWidth - width) / 2;
 y = 50;
 //TextView txt=new TextView(this);
 EditText txt=new EditText(this);
 RelativeLayout.LayoutParams obj = getLayoutObject(width, height);
 obj.leftMargin=x;
 obj.topMargin=y;
 sData="波がちょっと荒いが釣り日和。\n\n釣り餌をまいて待つこと2時間\nいいひきだと思いきや何も釣れなかった…。\n\nでもがんばってねばりにねばってさらに2時間経過。\n引いたので慎重にリールを回した。\n次第に魚も疲れてきたみたいだ。\nいっきにまくしたてるとようやく魚の影が…\nようやく釣れたのがちっちゃなカサゴ。\nでもないよりまし。\n今日はいい日と自分に言い聞かせて釣りを終えることにした。";
 txt.setText(sData);
 //テキストのフォントサイズ
 txt.setTextSize(20.0f);
 txt.setTextColor(Color.argb(90, 2, 3, 100));
 txt.setBackgroundColor(Color.argb(85, 255, 255, 200));
 
 //InputTypeがNONEであることが条件となりますが、
 //「0」や「TYPE_NULL」は適当でないと思います。(動くには動きました)
 //txt.setInputType(0);
 txt.setInputType(InputType.TYPE_NULL);
 //Gravity.BOTTOMを設定すると文章が下付けになります。
 //txt.setGravity(Gravity.BOTTOM);
 //フォントの変更
 txt.setTypeface(Typeface.MONOSPACE,Typeface.ITALIC|Typeface.BOLD);
 //setSingleLine
 //true:1行表示
 //false:複数行表示
 txt.setSingleLine(false);
 //行数の最大数を設定
 //0以上の数字を設定します
 //マイナスになるとエラーになります。
 //また0は何も表示しないという設定となってしまいます。
 //txt.setMaxLines(0);
 layout.addView(txt, obj);
 
 }
 @Override
 //ボタンがクリックされたら実行されます。
 public void onClick(View view) {
 
 }
 //レイアウトを決定するオブジェクトを生成し渡します
 public RelativeLayout.LayoutParams getLayoutObject(int width,int height)
 {
 return new RelativeLayout.LayoutParams(width, height);
 }
 }
 
 
 |  
 TextViewに諸設定を行っています。
 
 
 | 項目 | 内容 |  | setText | テキストを表示します。 |  | setTextSize | フォントサイズを設定します。 |  | setTextColor | テキスト文字の色を設定します。 |  | setBackgroundColor | テキストの背景色を設定します。 |  | setTypeface | フォントの設定をします。 |  | setSingleLine | 単行か複数行の設定ができます。 | 
 
 また、縦方向のスクロールができるようにしています。
 
 (例)
 //InputTypeがNONEであることが条件となりますが、
 //「0」や「TYPE_NULL」は適当でないと思います。(動くには動きました)
 //txt.setInputType(0);
 txt.setInputType(InputType.TYPE_NULL);
 
 また、キー入力が反映されないようにするには、上記の設定のほか、次の設定をしてください。
 
 
 
| EditTextコントロールオブジェクト.setFocusable(false); (例)
 txt.setFocusable(false);
 |  
 実行結果
 
 
   
 
 
 |  |