以下のような画面になっていれば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 件のコメント:
コメントを投稿