2014年10月29日水曜日

AndroidのViewとレイアウトについてメモ

AndroidのViewとレイアウトについてメモ


Androidの画面を構成するのは View である。

Viewには2つのタイプがあり、Widget と Layout と呼ばれる。

●Widget

  TextViewやButtonなどで、画面を操作したり、情報を表示する部品。

●Layout

  LinearLayoutやRelativeLayout、FrameLayoutなどで、画面の構成を決めるもの。


View を画面上のどこに、どのように配置するかをパラメータで指定する。
パラメータについて見ていこう。

ここから説明するパラメータをlaytou用xmlで使用する場合、基本プレフィックスとて「android:」が必要である。

●Viewの大きさを指定するパラメータ


  layout_height viewの高さ
  layout_width viewの横幅

  高さや横幅を指定するときの単位には、以下が使用出来る。

  ・絶対値を指定する

    dp(dip):density-independent pixels(密度非依存のピクセル)
     160dot/inch(dpi)の画面を基準とし、1dpiは160dpiの画面で1ピクセルと同義である。
     px = dp * (dpi / 160)
     つまり、画面の解像度(dpi)によって、(dpi/160)の比率で自動的に px を決定するため、
     複数の解像度端末に対応出来る。
    sp:scale-independent pixels(スケール非依存のピクセル)
     指定したサイズは解像度とユーザが設定したフォントのサイズに合わせて自動的にスケールされる。
     dpと似ているが、フォントサイズに依存する点で異なる。
    px:ピクセル単位
    たとえば、480px X 800pxの画面であれば、
    1pxは画面の1/480ということになる。
    Viewの幅や高さ、マージン、パディングはdpで指定し、文字サイズに関してだけspで指定することが多いようである。
    また、画面レイアウトファイルで「android:textsize」属性を指定しない場合(デフォルト)では、フォントサイズの単位にspが使用される。
    はじめは、480px×800pxを想定して作成し、その後他の解像度の端末で検証すると良い。
    googleの公式:http://developer.android.com/intl/ja/design/style/metrics-grids.html

  ・相対的に指定する

    match_parent(fill_parent:API Level8から非推奨):親のViewと同じサイズ
    wrap_content:コンテンツを表示するのに十分なサイズ

●Viewの余白を指定するパラメータ


  padding:Viewの内側の余白
  layout_margin:Viewの外側の余白

  paddingやlayout_marginは、上下左右を別々に指定することが可能である。

  padding、layout_marginの後ろに、Top(上)、Bottom(下)、Left(左)、Right(右)を指定するだけである。


●位置を指定するパラメータ

  Gravityを使用する。レイアウトとViewの関係を指定することが出来、UIのイメージをしながら構築する。

  gravity:内部の要素の位置を決める
  layout_gravity:自分の位置を決める


●レイアウト

  UIの構造を定義する。


  LinearLayout:Viewを直線的(線形)に並べることができる
    ・どの方向に並べるか
     orientation:horizontal(横、デフォルト) or vertical(縦)
    ・子要素の重み
     layout_weight:View配置の残りのスペースを埋める。指定しない場合、0が割り当てられる
     レイアウト中のViewは割り当てられた重み分だけ残りのスペースを埋めるように表示される。

  RelativeLayout:Viewを相対的に配置することができる

    以下のようなパラメータによってView同士の位置関係によって画面を構成できる。
    layout_above:指定したidのViewの上
    layout_alignBaseline:指定したidのViewのベースラインにあわせる
    layout_alignBottom:指定したidのViewの下端にあわせる
    layout_alignLeft:指定したidのViewの左端にあわせる
    layout_alignParentBottom:親となるViewの下端にあわせる
    layout_alignParentLeft:親となるViewの左端にあわせる
    layout_alignParentRight:親となるViewの右端にあわせる
    layout_alignParentTop:親となるViewの上端にあわせる
    layout_alignRight:指定したidのViewの右端にあわせる
    layout_alignTop:指定したidのViewの上端にあわせる
    layout_below:指定したidのViewの下
    layout_centerHorizontal:親となるViewの横方向の中央
    layout_centerInParent:親となるViewの中央
    layout_centerVertical:親となるViewの縦方向の中央
    layout_toLeftOf:指定したidのViewの左側
    layout_toRightOf:指定したidのViewの右側
  

  FrameLayout:Viewを重ねて配置する。

    FrammeLayoutのViewが、レイアウトファイルに記述された順番で配置される。

  ScrollView:画面にレイアウトが収まりきらなかった場合に、収まらない分をスクロールして表示する。

    子にもつルートとなるViewは1つでなければならない。つまり、ScrollViewに直接複数のTextViewを指定せず、TextViewをもつLinearLayoutを、ScrollViewに配置するなどである。


0 件のコメント:

コメントを投稿