新しくAndroidアプリを作っているのですが、XMLによるレイアウトで 色々苦戦したので解決方法とかをメモしときます
HTMLは割と自在に操れるようになったのですが、 その経験があまり生かせないのが辛い…。
「weightはレイアウトの余った余白を分配する比率」 weightを大きくする程、レイアウトの大きさが小さくなる場合は 間違って利用している可能性大です。 Weightを利用する時はレイアウト内の要素を全て "wrap_content"にして、可変にしたい部分以外はandroid:weight=0 に設定しておきましょう。l width,heightを”match_parent”、”fill_parent"にしてないかチェック
なぜ親要素にマッチするよう指定するとWeightがおかしくなるかは、 下記のリンクの記事が参考になります。 「LinearLayout の width(またはheight) と weight の関係」 これは知らないとハマりますね。
レイアウトはdipで、文字のサイズはspで、 が推奨されているようです。 行儀は良くないですが、固定したい時は文字サイズにもdipを
9patchという伸縮する背景画像を用いる時の注意です。 9patchで画像を可変にする時は、 必ずコンテンツ領域(右と下の1pxのライン)を指定します。 指定しないと正しく中央そろえや表示が出来ません。 中のコンテンツが欠けてしまったり、センタリングがずれてしまったら 背景画像を疑ってみる事が重要です。 これを上手く指定すると、必要な部分を避けて 中のコンテンツを指定できます。
あと背景画像は極力小さめに作ります。 レイアウトの最低サイズ < 背景画像のサイズ だとやはりレイアウトが崩れてきます。