setMargins と setPadding の違い

Posted by muchag | Android,困ったTT |
初回投稿:2011-01-22 (土) 17:21:38 | 最終更新:2011-01-22 (土) 17:27:34

setMarginssetPadding の違いは何だろう・・・と思った。

setMargins

ViewGroup.MarginLayoutParams クラスのメソッド。
Android Developers:setMargins

具体的には、以下のサブクラスにて利用。

  • FrameLayout.LayoutParams
  • LinearLayout.LayoutParams
  • RelativeLayout.LayoutParams
  • RadioGroup.LayoutParams
  • TableLayout.LayoutParams
  • TableRow.LayoutParams

具体的な利用法は setMargins 参照。

setPadding

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 かと思ったんだけど
そうでもないみたい。

宿題・・・。

Posted by muchag | Android,困ったTT |
初回投稿:2011-01-22 (土) 17:21:38 | 最終更新:2011-01-22 (土) 17:27:34

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment