第18回 AndroidのTextViewでサイズ指定の肝!
iOSでUILabelを使ったことは、AndroidではTextViewでやるといいようです。
氏名の入力で使うことになる予定ですが、テキストの入力は、iOSではUITextView、Androidでは、EditTextというクラスを使うようです。
この辺りはなるべくシンプルにいきたいです。
で、前回のプログラムのAndroidバージョンです。
public EntryView(Context context,int width,int height) { super(context); setBackgroundColor(Color.argb(255,100,240,255)); // このビューのサイズを受け取っておく myWidth = width; myHeight = height; runningSelect(); } private void runningSelect() { // ランナーを指定する画面。 // エントリー用のパーツを配置する // Entry(走者名の登録) TextView TextView title = new TextView(getContext()); title.setText("Entry(走者名の登録)"); final float size = myWidth * 0.07f; title.setTextSize(TypedValue.COMPLEX_UNIT_PX,size); title.setTextColor(Color.BLACK); LayoutParams titleParams = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); titleParams.addRule(ALIGN_PARENT_TOP); titleParams.addRule(CENTER_HORIZONTAL); this.addView(title,titleParams); }
文字のサイズ指定ですが、
title.setTextSize(TypedValue.COMPLEX_UNIT_PX,size);
という指定方法なんですね。
ピクセル単位で、このサイズで描いてね〜って感じでしょうか。
あと、swiftではsiztToFitで済ませたものが、AndroidではWRAP_CONTENT、縦と横に指定しています。
位置は、親ビューのTop,Centerで指定しています。
で、出来上がったのがこちらです。
サイズ的には問題ないですが、swiftでWeight指定したために、文字の太さが変わってしまいました。むむ、ちょっと気になる。
また、調べておきます。