フォーカスを持たせたくない場合(ソフトキーボードで入力させない場合)
android:focusable="false"
1行のみ
android:singleLine="true"
文字数制限(この場合100文字)
android:maxLength="100"
文字列寄せ
android:gravity="left"
文字サイズの指定
android:textSize="22sp"
ダブルタップを実装しようとしてもイマイチ要領をつかめなかったので、
アホの子なりに解説をしてみます。
↓このあたりを見て分らなかった人は読んでください。という記事です。
http://www.hoge256.net/2009/09/462.html
http://www.adakoda.com/adakoda/2009/07/android-android-15gesturedetectorondoubletaplistener.html
ダブルタップを実装するにあたり、「GestureDetector」というインターフェースを実装します。
implementsに追記すると「実装してないメソッドがあるぞゴルァ」と言われますので、
ちょちょいとオーバーライドします。
ポイントとしてはここから!
GestureDetectorをonCreateでnewします。
つぎに、onTouchEvent若しくはonTouchメソッド内で下記コードにてタップを取得します。
if(this.gestureDetector.onTouchEvent(event)) return true;
これでダブルタップ等々のメソッドが呼ばれるようになるので、そこにタップ時の処理を書くだけです。
レイアウトをしていく際に、右寄せに配置だったり下部に配置したい時に大変便利なのですが、
ちょっとこの2つは違いが分かりにくかったので書き残しておこうと思います。
layout_gravity⇒レイアウト自体の重み
gravity ⇒レイアウトが囲っているものの重み
つまり、LinearLayout自体を右寄せ~とかだったらlayout_gravityを使う。
LinearLayout内のウィジットを左寄せ~とかだったらgravityを使う。
TextView等のテキストもgravityを使う。
ちなみに、記述としてはandroid:gravity="left"とか書くんですが、
android:gravity="bottom|left"というようにパイプで複数個の値をセットすることも可能です。
メモリ解放でもお世話になるRuntimeと、
DataOutputStreamを使用します。
/**サンプル*/
// root取得してサスペンドイベントを投げる
private
void suspend() {
try {
Process p = Runtime.getRuntime().exec("su");
DataOutputStream dos = new DataOutputStream(p.getOutputStream());
dos.writeBytes("sendevent /dev/input/event0 1 142
1\n"); // 押す
dos.writeBytes("sendevent
/dev/input/event0 1 142 0\n"); // 離す
dos.writeBytes("exit\n");
} catch (IOException e) {
e.printStackTrace();
}
}
せっかくスクロールできるビューを使っても、
右端と最下部に2~3mm隙間ができてしまいます。
スクロールバーを常時表示していれば良くわかりますが、
スクロールバーの表示領域を確保しています。
なので、XMLの中でScrollViewに
android:scrollbarStyle="insideOverlay"をScrollViewに指定してくだい。
ビューに被ってしまいますが、綺麗に表示できるハズです。