setMargins と setPadding の違い
setMargins と setPadding の違いは何だろう・・・と思った。
ViewGroup.MarginLayoutParams クラスのメソッド。
Android Developers:setMargins
具体的には、以下のサブクラスにて利用。
- FrameLayout.LayoutParams
- LinearLayout.LayoutParams
- RelativeLayout.LayoutParams
- RadioGroup.LayoutParams
- TableLayout.LayoutParams
- TableRow.LayoutParams
具体的な利用法は setMargins 参照。
View クラスのメソッド。
Android Developers:setPadding
具体的には Button などの各サブクラスで利用。
で、結局違いは?
LinearLayout などのレイアウトものは setMargins で
レイアウトものの中に配置する View ものは setPadding かと思ったんだけど
あちこちのサイトを見ていると、どうもそうでもないらしい。
実際に私のテスト環境で
[android]LinearLayout layout=new LinearLayout(this);
layout.setPadding(0, 400, 0, 0);[/android]
これがちゃんと機能しているし、逆に
[android]ImageButton imagebutton=new ImageButton(this);
imagebutton.setPadding(90, 0, 90, 0);[/android]
これが機能しない。
LayoutParams クラスを通すか否かの差?
最初は、LinearLayout などのレイアウトものは setPadding で
レイアウトものの中に配置する View ものは setMargins かと思ったんだけど
そうでもないみたい。
宿題・・・。