<< Android-Note
動的にビューのマージンを変更する
レイアウトからではなくコード中でビューのマージンを変更したいという場合があると思います。
その場合はMarginLayoutParamsを取得し、それを介してビューのマージンを変更します。
例えば、テキストビューのマージンをコード中から変更するには次のようにします。
package com.MyApp.myapp; import android.view.ViewGroup.MarginLayoutParams; import android.view.ViewGroup.LayoutParams; import android.widget.TextView; public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.calculator_main); TextView textView = (TextView)findViewById(R.id.textView); LayoutParams lp = textView.getLayoutParams(); MarginLayoutParams mlp = (MarginLayoutParams)lp; mlp.setMargins(mlp.leftMargin, 10, mlp.rightMargin, 10); //マージンを設定 textView.setLayoutParams(mlp); } }
このようにいったんLayoutParamsを取得してからMarginLayoutParamsに変換します。
あとはsetMarginsなどのメソッドでマージンを設定し、最後にsetLayoutParamsメソッドでマージンの変更を反映させます。
この例では左と右はそのままで上と下のマージンをそれぞれ10(単位はdp)に変更しています。
© Kaz