以下のような画面になっていればOKです。
次はこの画面にボタンを表示させます。
ボタンといっても、コスメマネージャーの場合はImageViewを使って画像を表示させています。
以下のような画面になります。
課題については、Chapter12のレイアウトファイル内に書かれています。
コードレビュー
では、コードを見てみましょう。Sample03プロジェクトの/res/layout/chapter12.xmlを開いてください。<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/back_img_repeat"> <!-- ロゴを入れるRelativeLayout --> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="20dp" android:paddingBottom="20dp"> <ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/logo" android:adjustViewBounds="true" android:layout_centerInParent="true" /> </RelativeLayout> <!-- メニューを入れるLinearLayout --> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="vertical"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="top|center_horizontal" android:layout_marginBottom="10dp"> <!-- ImageViewを3つ使ってボタンを作成してください srcは @drawable/regist @drawable/manage @drawable/photo_book を使ってください。 layout_widthは90 layout_heightは90 adjustViewBoundsはtrue を指定すること。 他に使う属性もあります。 --> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="top|center_horizontal"> <!-- ImageViewを2つ使ってボタンを作成してください srcは @drawable/ranking @drawable/about を使ってください。 layout_widthは90 layout_heightは90 adjustViewBoundsはtrue を指定すること。 他に使う属性もあります。 また、もう1つViewを追加して見た目を整えてください。 --> </LinearLayout> </LinearLayout> <!-- フッター(広告エリア)など --> <RelativeLayout android:id="@+id/adArea" android:layout_width="fill_parent" android:layout_height="50dp"> <ImageView android:src="@drawable/nail_banner" android:layout_width="fill_parent" android:layout_height="50dp" android:layout_centerInParent="true" /> </RelativeLayout> </LinearLayout>Chapter11の答え合わせですが、ハイライトしている部分がそうです。
ImageViewで画像を指定する場合、@drawable/[ファイル名]を使います。
余談ですが、このファイルは、/res/drawable-hdpiに置いています。
いろんな解像度に対応しようと思ったら、drawable-****のすべてに画像を置くべきですが、hdpiの画像のみを置いています。 優先順位的に画像が使われるので、mdpiの端末でも、drawable-mdpiに同名のファイルがない場合はdrawable-hdpiにある画像が使われます。 全ての解像度の画像を準備しようと思うと、大変ですし、アプリ自体のファイルサイズも大きくなるので、表示が合わない素材だけを、 特定のフォルダに置くようにしましょう。
また、デフォルトだとdrawableのフォルダのみ-hdpiや-mdpiという指定がありますが、実はlayoutファイルでもこのような指定をすることができます。詳細は今回は書きませんが、Android Developersの開発ガイドのマルチスクリーンのページを見れば参考になるかと思います。
Chapter12の解答はChapter13に書いてあるので、わからない場合はそちらを見ながら書いてみましょう。
0 件のコメント:
コメントを投稿