[Android] レイアウト (1) レイアウトの概要 ================================================================================ Android では、4 種類のレイアウトがある。 LinearLayout ウィジェットを縦または横に並べて配置(ボックス・モデル) RelativeLayout 他のウィジェットとの相対位置を基にして自分を配置 (ルールベース・モデル) TableLayout テーブル形式でウィジェットを配置(グリッド・モデル) FrameLayout ひとつのウィジェットを配置 参考 ソフトウェア技術ドキュメントを勝手に翻訳 Android 開発ガイド > フレームワークトピック > 6. ユーザインターフェイス > 6.b 共通レイアウトオブジェクト http://www.techdoctranslator.com/android/guide/ui/layout-objects レイアウトは、ViewGroup と、ViewGroup.LayoutParams で特徴づけられる。 また、それぞれのレイアウトは、ViewGroup.LayoutParams から継承される xxx.LayoutParams がある。(xxx は、AbsListView、RelativeLayout、LinearLayout、 FrameLayout) それぞれの継承関係は以下のとおり。 ================ AbsListView --- .LayoutParams | ---------------- | x | y | ================ | | ============= =================== | ================ ViewGroup ViewGroup | RelativeLayout .LayoutParms <|--- .MarginLayoutParams <|-+-- .LayoutParms ------------ ------------------- | ---------------- height marginBottom | above weidth marginLeft | below ============ marginRight | alignLeft marginTop | alignRight =================== | toLeftOf | torightOf | centerHorizontal | centerVertical | ================ | | | ================ | LinearLayout | .LayoutParms | ---------------- | gravity | weight | ================ | | | ================ | FrameLayout --- .LayoutParms ---------------- gravity ================ 画面のサイズは、要求サイズと実サイズの 2 種類ある。それぞれ、つぎのメソッドで取 得できる。 ・サイズを取得する View クラスのメソッド --- int getMeasuredWidth() 要求している幅 int getMeasuredHeight() 要求している高さ int getWidth() 実際の幅 int getHeight() 実際の高さ --- □ ViewGroup クラス java.lang.Object + android.view.View + android.view.ViewGroup ウィジェットを取りまとめることができるビューのスーパークラス。 XML 属性(属性名の前に、名前空間プレフィックス android: がつく) --- android:addStatesFromChildren android:alwaysDrawnWithCache android:animateLayoutChanges android:animationCache android:clipChildren android:clipToPadding android:descendantFocusability android:layoutAnimation android:persistentDrawingCache --- □ ViewGroup.LayoutParams クラス java.lang.Object + android.view.ViewGroup.LayoutParams ViewGroup の内部クラスで、画面のサイズに関するスーパークラス。 XML 属性(属性名の前に、名前空間プレフィックス android: がつく) --- android:layout_height ビューの高さ android:layout_width ビューの幅 --- 属性の値 --- 属性値 値 説明 fill_parent -1 他のウィジェットの処理後にあまっている部分もすべて使うサイズ match_parent -1 fill_parent と同じ(Android2.2 以降ではこちらが推奨) wrap_content -2 ウィジェットが入るサイズ。ウィジェットが大きいときは折り返す 値 正数 単位つきの実正数を指定 --- △ 実正数の単位 Dimension http://developer.android.com/intl/ja/guide/topics/resources/more-resources.html#Dimension --- dp Density-independent Pixels - dpiを基本にした相対的な単位。 160dpi の画面では、1dp = 1px となる sp Scale-independent Pixels - フォントサイズを基本にした相対的な単位。 pt Points - 物理的な画面での大きさ (1/72 inch = 1 pt) px Pixels - 物理的な画面でのドット数 mm Millimeters - 物理的な画面での大きさ in Inches - 物理的な画面での大きさ --- □ ViewGroup.MarginLayoutParams java.lang.Object + android.view.ViewGroup.LayoutParams + android.view.ViewGroup.MarginLayoutParams ViewGroup.LayoutParams のサブクラスで、レイアウトのマージンに関するクラス。 XML 属性(属性名の前に、名前空間プレフィックス android: がつく) --- android:layout_marginBottom android:layout_marginLeft android:layout_marginRight android:layout_marginTop --- Java では、 void setMargins(int left, int top, int right, int bottom) メソッドを使って動的に変更できる。 以上
最新の画像[もっと見る]
-
あけましておめでとうございます 12年前
-
今年もよろしくお願いいたします 13年前
-
あけましておめでとうございます 14年前
-
あけましておめでとうございます 17年前
※コメント投稿者のブログIDはブログ作成者のみに通知されます