レイアウト

android-layout.png

リファレンスの読み方

Developersのサイトを探しても、クラスじゃねーよ!と言いたくなるとき
クラス名.LayoutParams.html
に、XMLファイルだった場合のことが乗ってるよ。

周りとのマージン・パディング

android:layout_margin="xdpi"
上下左右同じdip分だけ隙間を開けてくれる。
Androidwiki-レイアウト
dpとは?

大きさを均等に割り振る

半分半分にする

index.php?plugin=ref&page=Android%20%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88&src=hanbun.png
   半分半分にするときは、LinearLayoutを用いてlayout_widthを0dipにして、weightを1とする
android:layout_width="0dip"
android:layout_weight="1"

Activityですること

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);
}

Rはresフォルダ以下にあるものという意味。
R.layoutはres/layout/フォルダ以下ってこと。

3等分する

こういうLayoutParamを渡す

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1);

レイアウトのプロパティー

大きさの単位

dp(dip: density-independent pixel)
sp(scaled pixel)
px(pixel)
 レイアウト指定で利用可能な単位

px  ピクセル
dp  密度非依存ピクセル
sp  倍率非依存ピクセル
mm  ミリメータ
pt  ポイント数
in  インチ

レイアウトの種類まとめ

LinearLayout Viewを縦・横方向に並べるレイアウト
TableLayout Viewを表形式に並べるレイアウト
FrameLayout Viewを左上を原点に重ねるレイアウト
RelativeLayout 複数のViewを相対的に配置するレイアウト
AbsoluteLayout Viewを絶対座標で配置するレイアウト注※ deprecated 今は使用されていない

android:layout-width

wrap_content 文字列長に大きさが変化します。文字列が長ければ長いほど、それに従い大きくなるのです。
fill_parent 画面の大きさに合わせてぴったりあわせてきます。API Level8からmatch_parentに改名された。
ソースはここ

android:layout_weight

は画面上のオブジェクトの占有比率を指定するのに使う属性です。

android:gravity

属性に"left", "center, "right", "top", "bottom"を組み合わせて, 文字の表示位置を設定する.

@stringとres/values/string.xmlの関係

android:text="@string/mon" />

@string/キー名 でres/values/string.xmlにあるキーを検索して表示してくれる。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">TimeTable</string>
    <string name="mon"></string>
</resources>

android:text=Mondayと直接書いてもいいけど、hard codedとかいってwarningされる。
なんでわざわざこんなこと(@string)をするかというと、ローカライズ(多言語対応)するときに便利だからだ!
ただのvaluesフォルダは英語だけど、もし日本語対応にしたかったら、values-jaというフォルダを作って、同じようなstring.xmlファイルを作る。中身は日本語にするのだ。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">TimeTable</string>
    <string name="mon">Monday</string>
</resources>

子要素がはみ出て見えなくなってしまった!場合

StackOverflow[2]の解答をみる限り、相当面倒くさそうだ。
すべての親要素にsetClipChildren(false)すれば治るという説[3]もある

エラー

レイアウトテンプレートのエラーメッセージ一覧

Open quote is expected for attribute "" associated with an element type

テンプレートの形式が適切でないため、解析できませんでした。 すべての XML 要素が適切に閉じられているかどうかを確認してください。
XML エラー メッセージ: Open quote is expected for attribute "width" associated with an element type "img".

たとえば img 要素の width 属性は width=56 ではなく width='56' と書く必要があります。クォートはシングルクォート(')でもダブルクォート(")でもかまいません。
クォートが変な形じゃない?
コピペした時に起こる

サポートサイト Wikidot.com