[Android] ButtonをJavaコードだけで設定する

レイアウトをactivity_main.xmlなどのxmlファイルでの設定ではなくjava コードだけで記述する方法について見てみます。位置を自由に「動的」に変えられるなどのメリットがあります。

ボタンタップでボタンのレイアウトとサイズを変化させた例です

button2_1
button2_2

Android Studio 2.2.2
Android 7.1

 

sponsored link

setContentView

 
defaultではレイアウトとしてactivity_main.xmlを以下のコードで指定しています。

レイアウトファイルを使わない場合は

のようにします。

主なLayoutについて確認してみたいと思います。

  • LineaLayout
  • RelativeLyout

 

LinearLayout

 
ButtonをタップするとTextViewの表示を変える 簡単な例 を レイアウトファイル xml で作成しました。これをコードで書くとこのようになります。Buttonのインスタンス生成は、

レイアウトファイルに記述していたLinieaLayout部分は

クリックリスナーは変わりません、まとめるとこのようになります。

MainActivity.java

 
基本的にはこのようになりますが、中央寄せ、テキストサイズの変更などを加えるとこのようになります。

MainActivity.java

 
これだけだとあまりありがたみが無いですが、動的にボタンの幅を変えたり、マージンを変えたりするときには有効です。画面サイズに応じて位置や大きさを変化させるケース等です。
MainActivity.java

 
ボタンの横幅を250dp,縦幅を100dp
マージンを 左5dp,上50dp, 右50dp に変えてみました

テキストの色を変えたり
テキストサイズを変えたりなどは
xmlと絡めて簡単にできますが
位置の調整はこのようにする必要があります

Buttonのタップを匿名クラスで取得していますが、他にもいくつも方法があります。
onClickListenerの色々な設定
 

RelativeLayout

 
LinearLayoutと基本的には同じですが、RelativeLayoutとしての位置指定が必要です。
今回はmarginを使ってみました。
 

関連ページ: