画面がスライドしてメニューが表示される動作を実装します。
注意と補足
Android4以降ではNavigationDrawerを用いた実装が推奨されています。
アプリケーション作成情報
- ProjectName : NavigationDrawerDemo
- ApplicationName : NavigationDrawerDemo
- PackageName : com.ipentec.NavigationDrawerDemo
- Activity : MainActivity
- Minimum Required SDK : 2.2
プロジェクト作成
Project Explorerのポップアップメニューで[New]メニューを選択し、[Project]メニューを選択します。下図のプロジェクト作成ダイアログが表示されます。[Android]カテゴリの[Android Application Project]を選択します。
[New Android Application]ダイアログが表示されます。Application Name等を設定します。設定後[Next]ボタンをお押します。
プロジェクトの設定画面が表示されます。今回はデフォルトのままとします。[Next]ボタンを押して次に進みます。
プロジェクトのアイコン設定画面が表示されます。こちらもデフォルトのままとします。[Next]ボタンを押します。
アクティビティの設定画面が表示されます。今回は"Blank Activity"を選択します。選択後[Next]ボタンを押します。
先の画面で選択した、BlankActivityの名称などを設定します。今回はデフォルトのままとしました。[Finish]ボタンをタップしてプロジェクトの作成を完了します。
Support Library の追加
プロジェクトにサポートライブラリを追加します。Project Explorer でプロジェクトのノードを選択し右クリックします。ポップアップメニューが表示されますので、[Android Tools]メニューの[Add Support Library]メニューを選択します。
[Choose Packages to Install]ダイアログが表示されます。 [Accept Licnese]ラジオボタンにチェックをし、[Install]ボタンを押します。
サポートライブラリのインストールが始まります。
レイアウトファイルの編集
プロジェクトノードを開き \res\layout ディレクトリ内のactivity_main.xmlを開きます。
レイアウトエディタの下部のタブの[activity_main.xml]タブを選択します。レイアウトデザイナ画面からXMLのコード画面に切り替わります。
コード
編集前のレイアウトXMLコードは下記の通りです。
編集前 Activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
上記のコードを下記に変更します。
編集後 Activity_main.xml
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- メイン画面 -->
<LinearLayout
android:id="@+id/left_draw"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"/>
<!-- NavigationDrawer -->
<LinearLayout
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#808080"
android:orientation="vertical">
<Button
android:id="@+id/drawer_button1"
android:layout_width="match_parent"
android:layout_height="48dp"
android:text="メニュー1" />
<Button
android:id="@+id/drawer_button2"
android:layout_width="match_parent"
android:layout_height="48dp"
android:text="メニュー2" />
<Button
android:id="@+id/drawer_button3"
android:layout_width="match_parent"
android:layout_height="48dp"
android:text="メニュー3" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
実行結果
プロジェクトを実行します。起動すると下図の画面が表示されます。
画面の左端で右側にスワイプするとメニューのパネルが現れます。
Navigator(メニュー)が表示されました。
色を変更した場合
<LinearLayout
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#808080"
android:orientation="vertical">
の部分の"android:background"を"#FFFFFF"に変更した場合の実行結果です。
起動時の画面は変わりありません。
画面の左端で右側にスワイプするとメニューのパネルが表示されます。白いパネルです。
Navigator(メニュー)が表示されました。
Android 2.3 端末の場合
Android 2.3の端末でも同じように動作します。
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-04
作成日: 2013-11-25