知っておいた方が良い事② ImageViewのレイアウト
ImageViewに背景画像を指定すると、機種によっては端が切れたり、する場合があります。
その場合はlayout_widthは"fill_parent"、 android:layout_heightは"画像の高さ"(dip)を指定するときれいに収まります。
また、android:scaleTypeは画像をどのように表示するかを設定します。
http://www.javadrive.jp/android/imageview/index5.html:参考にさせていただきました
知っておいた方が良い事① ScrollViewとListViewの関係
ListViewにstyleを定義したスクロールバーを置きたくて、
ScrollViewを置いて、その下にListViewを配置していたのですが、
ListViewが変な挙動になってしまいました。
調べてみると、ListView は ScrollView の機能を含んでいるとのこと。
こうやって書いてあげればdrawable/scrollbar_thumblに定義した形のスクロールバーがちゃんと表示されました。
実機の画面サイズ、縦横比が異なる画像を貼りつけたい場合
主にGalaxyS(画面サイズ:H800xW480)で開発しているのですが、
画像は使い回しで、H960xW640サイズのものだったとします。
普通にはりつけると、
xmlソース
実際のレイアウト
縦横比が異なるため、上下に余白が出てしまいます。
余白がでないようにしたxmlソースはこちら。
android:adjustViewBounds="true"
/>
実際のレイアウト
赤い記述を加えると、ぴったり、実機のサイズに収まってくれます。
android:adjustViewBoundsは描画の縦横比を維持するかどうかを指定するものなので、
なるべくなら
各解像度用に画像を用意した方が良いように感じます。
layoutについて
レイアウトについて頭を悩ませたので、メモ
AbsoluteLayout
・子を絶対値で指定したい時に使う
・現在は推奨されていない(デバイスによって、だいぶ表示が変わってしまうから)
LinearLayout
・子を柔軟な位置に設定したい時はあまりおすすめでないが、子ビューにlayout_marginで指定することで、
AbsoluteLayoutの様な表示の仕方ができる
FrameLayout
・「子ビューは一つ」という前提のレイアウトなので、重ねて配置することができる
・条件によって、表示を切り替えるときに使うのが、良さげ
上のように、ボタンの位置が不規則なレイアウトの場合、
AbsoluteLayoutを用いて座標を指定していたのですが、
AbsoluteLayoutは非推奨なので、他にやりかたないかな〜と調べたところ、
LinearLayoutで子ビューにlayout_marginで指定するやり方がありました。
このやり方でもできるのですが、marginを指定するのが結構大変なので、
解像度ごとにlayoutフォルダを用意して、レイアウトを定義してあげる方法が
今のところ無難なやり方の様…?!