こんにちは、コンテンツクリエイターのともすけです。
この記事は、技術メモを書き留めておくページです。将来整理するかもしれませんが、現時点ではつらつらと書き連ねるだけです。Kotlinを使えないので、Javaコードです。目次からほしい情報にアクセスしてください。
また、できるだけCodeで書きたい人なので、XML情報はありません。
EditText
Activityが呼ばれたときに自動でフォーカス
文字入力するときに、いちいち入力エリアをタップする手間を省きます。
1 2 |
EditText editText = new EditText(this); editText.requestFocus(); // これ |
TextView
サイズ指定
サイズ指定時は単位を意識した方がいいと思うのですが、文法を忘れたので調べた結果を書いておきます。
1 2 |
TextView view = new TextView(this); view.setTextSize(<span class="ystdb-inline--3">TypedValue.COMPLEX_UNIT_DIP</span>, int size); |
“TypedValue.” まで入力すれば、何が選択できるか出てきます。筆者は、画面密度とかをあまり気にしなくないので基本はDIPを使うようにしています。
フォント変更
TextViewの階層に置きましたが、文字表示系では同様に使えるはずです。
main/assets/fontsにフォントファイル(.ttf)を置くと、アプリに読ませてフォントを変えることができます。assetsやfontsディレクトリは、はじめはないので自分で作成します。
1 2 3 |
TextView view = new TextView(this); Typeface typeface = Typeface.<em>createFromAsset</em>(getAssets(), "fonts/xxx.ttf"); view.setTypeface(typeface); |
画面に収まらないときの自動スクロール(marquee)
ScrollView系の話ではありません。コメントアウトしている行は失敗例です。
- 表示行を1行に制限するのに、setMaxLines(1)では意味がなかったこと
- 選択した状態でないとスクロールしないとのことで、setFocusable(true)を使ったが違った
1 2 3 4 5 |
textView.setEllipsize(TextUtils.TruncateAt.MARQUEE); //textView.setMaxLines(1); textView.setSingleLine(); //textView.setFocusable(true); textView.setSelected(true); |
センタリングなど
TextViewに限りませんが、setGravityが使えるViewに使える手法です。
1 2 |
TextView view = new TextView(this); view.setGravity(Gravity.<em>CENTER</em>); |
設定できるGravityは、「Gravity.」まで入力すると補完リストが出てきますので、そこから選んでください。