知っておいた方が良い事③ ImageViewをスクロールする

前回の知っておいた方が良い事②のImageViewにスクロールバーを付けます。
②のImageViewに何も加えないと、スクロールバーが長くなってしまいますが、
android:adjustViewBounds="true"を加えることによって、スクロールバーが画像の大きさにフィットしてくれました。






android:adjustViewBounds="true" >

知っておいた方が良い事② 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:scaleType="fitXY"
android:adjustViewBounds="true"

/>


実際のレイアウト


赤い記述を加えると、ぴったり、実機のサイズに収まってくれます。
android:adjustViewBoundsは描画の縦横比を維持するかどうかを指定するものなので、
なるべくなら
各解像度用に画像を用意した方が良いように感じます。






引用元:http://unizain.com/masa/?cat=9

GlaxyTabが急に接続できなくなる

GlaxyTabの場合、Eclipseで開発途中に
Android Device Chooser」から
いなくなることがあります。

USBの再接続、Eclipseの再起動でも表示されない場合、
以下を試してみてください。


①設定→無線とネットワーク→USB設定→カードリーダモードを選択
②設定→アプリケーション→開発→USBデバッグにチェック

なんらかの影響で、勝手に設定が変えられて、接続ができなくなることがあるっぽいです。

layoutについて

レイアウトについて頭を悩ませたので、メモ

AbsoluteLayout
・子を絶対値で指定したい時に使う
・現在は推奨されていない(デバイスによって、だいぶ表示が変わってしまうから)

LinearLayout
・子を柔軟な位置に設定したい時はあまりおすすめでないが、子ビューにlayout_marginで指定することで、
 AbsoluteLayoutの様な表示の仕方ができる

FrameLayout
・「子ビューは一つ」という前提のレイアウトなので、重ねて配置することができる
・条件によって、表示を切り替えるときに使うのが、良さげ



上のように、ボタンの位置が不規則なレイアウトの場合、
AbsoluteLayoutを用いて座標を指定していたのですが、
AbsoluteLayoutは非推奨なので、他にやりかたないかな〜と調べたところ、
LinearLayoutで子ビューにlayout_marginで指定するやり方がありました。
このやり方でもできるのですが、marginを指定するのが結構大変なので、
解像度ごとにlayoutフォルダを用意して、レイアウトを定義してあげる方法が
今のところ無難なやり方の様…?!