Android プログラミング入門
トレーニングの目的
Androidアプリケーション開発に必要な基本的なプログラミング知
識を身につける。
演習を通して、アプリケーション開発を体験する

注意事項
本トレーニングは同じ資料で1日コース、2日コースを行います。
1日コースではトレ...
目次
目次
1.
2.
3.
4.
5.
6.
7.

Androidとは
Androidアプリケーションのアーキテクチャ
開発環境の準備
開発ツールの使い方
ユーザーインタフェース
画面遷移
まとめ
※本トレーニングでは既に開発環境はセットア...
トレーニングスケジュール
2日コース

1日コース

1日目

1日目

Androidとは
Androidアプリケーションのアーキテクチャ
開発環境の準備
開発ツールの使い方
ユーザーインタフェース(Viewまで)

2日目
ユーザーインタフ...
受講するにあたって必要なスキル
何かしらのプログラミング言語での開発経験があること
下記の条件があるとより理解度が上がります
オブジェクト指向の基本的な知識
Java開発経験
Eclipse使用経験

This material is lice...
開発環境
開発環境の説明
本トレーニングでは下記の開発ツールを用いる
トレーニング用マシンは既に開発環境は構築済みです
SDK付属のToolsに環境変数のパスが通っている

ソフトウェア

バージョン

統合開発環境

Eclipse IDE ...
開発環境
開発環境の説明
ディレクトリ構成
トレーニングに必要なファイルは全てandroid_traing_pnに用意してあります
。
以下はandroid_traing_pnのディレクトリ構成になります
パス(c:¥android_train...
演習の進め方
プロジェクトの共通設定
演習で作成するプロジェクトは特に指定のない限り以下のように設定に
する
項目

設定値

Project name

演習毎に指定

Build Target

※講師の指示に従う

Application...
1. Androidとは
概要
Androidとは
開発に必要なもの
アプリケーション開発の流れ
アプリケーションの紹介

This material is licensed under the Creative
Commons License BY-NC-SA 4.0...
Androidとは
Androidとは
携帯端末用プラットフォームである
主に携帯電話、タブレットなどのプラットフォームとして利用されてい
る
現在では、携帯電話、タブレット問わずさまざまなハードウェアに
Androidは搭載されている

An...
ハンドセット、タブレット以外の
Android
ノートPC
MediaController
腕時計型

This material is licensed under the Creative
Commons License BY-NC-SA ...
Android組込みハードウェア

This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

13
豊富なインタフェース
Androidのインタフェース

NFC

タッチパネル
各種センサ
トラックボール
カメラ
GPS
ソフトキーボード/ハードキーボード
GPS
NFC(Near Field Communication)
Bluetoot...
Androidのバージョン
Androidのバージョン一覧

1.5

2.3

Cupcake

Gingerbread

1.6

3.0–3.2

Donuts

HoneyComb

2.0–2.1

4.0

Eclair

Ice ...
Androidのバージョン 2.x系
2.x系の新機能
Version

コードネーム

APIレベル

リリース

新機能

2.0/2.1

Eclair

5, 6, 7

2009/10/26
(2.0)
2009/12/3
(2.0....
Androidのバージョン 3.x系
3.xの新機能
Version

コードネー
ム

APIレベル

リリース

新機能

3.0

Honeycomb

11

2011/2/22

• 大型ディスプレイに最適化
• タブレット専用となっ...
Androidのバージョン 4.x系
4.xの新機能
Version

コードネー
ム

APIレベル

リリース

新機能

4.0

Ice Cream
Sandwich

14, 15

2011/10/08

•
•
•
•
•
•
•...
Androidのバージョン 4.x系
4.xの新機能
Version

コードネーム

APIレベル

リリース

新機能

4.2

Jelly Bean

17

2012/11/13

• マルチアカウント
• クイック設定
• フォトギ...
開発準備
開発に必要なツール

Eclipse
Java SDK
Android SDK
Android Development Tools (ADT)

This material is licensed under the Creative...
アプリケーション開発の手順
開発手順
Eclipseでプロジェクト作成
画面デザインの作成
• Button、CheckBoxなどのパーツの配置
ソースコードを書く
• 例)ボタンクリック時の処理など

ビルド
Androidアプリが出来上がる...
Third Party Framework
Kivy on Android
PythonコードからAndroid
アプリケーションを作成す
る

Monaca
HTML5、JavaScript、CSSベ
ースでAndroidアプリケー
ションを...
Third Party IDE
IntelliJ IDEA

AIDE

JetBrains社が開発した、
Java言語など多言語対応の
統合開発環境

Android上でAndroidアプ
リケーションの開発を行
えるIDE

This ma...
Androidアプリケーションにの種類
Androidアプリケーションの種類
従来のハンドセットをターゲット
タブレット対応のアプリケーション
Webサービスと連携
特定のハードや機能に特化したアプリケーション
ICS以降のアプリも既にリリース...
主なアプリケーションの紹介
Androidアプリケーションの紹介
Angry Birds
手軽に遊べるAndroid用アクションパズルゲーム

Tinamium
Webサービスと連携した画像検索アプリケーション
ICS以降に対応

Kindle...
Android Market
Android Market
Google Play
Googleが提供するコンテンツ配信サービス
「Android Market」「Google eBookstore」「Google Music」といった、これ
...
Third Party Market
Third Party Market
Amazon Appstore for Android
米Amazon.comが、Androidアプリを販売
するアプリ市場

DeployGate
開発中のアプリケー...
Androidの構成要素(1)
Androidアプリケーションが動作する環境
AndroidアプリケーションはAndroidランタイムという仮想マシンの上で
動作する
Androidランタイムの実行基盤としてLinuxを採用している為、アプリケ...
Androidの構成要素(2)
Androidは5つの要素で構成されている
Androidの構成要素
アプリ
ケーショ
ン

⑤

Home

アド
レス

電話

アプリ
ケー
ショ
ン

ブラウザ

アプリ
ケーショ
ンフレームワーク

④...
Androidの構成要素(3)
構成要素の概要
① Linuxカーネル
Linuxカーネル2.6をベースにAndroid用の変更を加えたLinuxカーネル (ただ
しICS以降のカーネルはほぼ3.1ベースに)
アプリケーションが動作する為に必要...
Androidの構成要素(4)
構成要素の概要
④ アプリケーションフレームワーク
アプリケーションの動作やライブラリを使用する為に必要なJava APIを提供
する

⑤ アプリケーション
アプリケーションフレームワークを使用して開発されたA...
この章のまとめ
まとめ
Androidとは
携帯端末用プラットフォームである
主に携帯電話、タブレットなどのプラットフォームとして利用されている
現在では、携帯電話、タブレット問わずさまざまなハードウェアにAndroidは
搭載されている
An...
この章のまとめ
まとめ (続き)
アプリケーション開発の流れ
Eclipseでプロジェクト作成
• 画面デザインの作成
– Button、CheckBoxなどのパーツの配置
• ソースコードを書く
– 例)ボタンクリック時の処理など
ビルド
•...
2. Androidアプリケーションの
アーキテクチャ
概要
Activity
View
Intent
ライフサイクル

This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

35
主要コンポーネント
アプリケーションの主要な機能を実現する為、Androidにはコンポー
ネントが用意されている
一般的なアプリケーションの主要な機能
ユーザー
インター
フェース

コンポーネ
ント間通信

データ

イベント

アクセス

...
主要コンポーネント
基本となる4つのコンポーネントとインテント
アクティビティ(Activity)
インテント(Intent)
ブロードキャストレシーバ(Broadcast Receiver)
サービス(Service)
コンテントプロバイダ(...
アクティビティ
アクティビティとは?
Androidアプリケーションの画面は、アクティビティの上にボタン、チェ
ックボックス等の部品を配置し、 画面を作成する
基本的に1画面は1つのアクティビティで構成する
アクティビティは実行中、一時停止とい...
ActivityにUIを配置する
Androidアプリケーションの画面は、アクティビティの上にボタン、
チェックボックス等の部品を配置し、画面を作成する

①

②

左図はアクティビティにビュー(ボタン)を配置してい
る
1. アクティビティ...
アクティビティとイベント
ユーザーの画面入力に応答する処理を作成する事ができる
画面にて操作の情報(例えばボタンをクリックした)は、ビューを通じ
てアクティビティに通知される
アクティビティでは通知に応答する処理を作成する事ができる
ボタンがク...
アクティビティと画面の関係
1画面は1つのアクティビティで構成する
複数の画面を持つアプリケーションの場合、画面の数だけアクティビテ
ィを持っている

アプリケーション

アプリケーション
アクティビティ

アクティビティ

アクティビティ

...
アクティビティ表示の仕組み
アクティビティが表示される仕組み
アクティビティは画面に1つだけ表示される
Androidアプリケーションは、複数のアクティビティを持っていても、表示で
きるアクティビティは1つだけである
新しいアクティビティを表示...
アクティビティの状態
アクティビティの状態は複数あり、操作により状態が変化する
アクティビティの状態は3種類定義されている
フォアグラウンド状態
• アクティビティが表示されていて、カーソルがあたっている状態
バックグラウンド状態
• アクティ...
アクティビティの種類
画面の種類に応じて、アクティビティが用意されている
アクティビティの一例
#

作成する画面

使用するアクティビティクラス

1

単票画面

Activityクラス

2

一覧表示画面

ListActivityクラ...
ビュー
ビューとは?
ボタン、チェックボックス等の部品である
複数のビューをまとめる機能を持つビューを、ビューグループと呼ぶ
アクティビティ、ビュー、ビューグループの関係

ユーザーインターフェース
View
View

View

ViewG...
代表的なビュー
代表的なビュー
View名

概要

TextView

テキストを表示する

Button

基本的な押しボタン

EditText

テキストの入力をする

CheckBox

ON/OFF状態をもつボタン

Spinner...
代表的なビューグループ
代表的なビューグループ
名前

概要

LinearLayout

• 水平方向、または垂直方向にビューを配置するビューグループ
• 画面内に収まらない場合は、スクロールバーを表示

TableLayout

• 格子状...
カスタムビュー
独自のビューを作成できる(カスタムビュー)
カスタムビューは3種類の方法で作成できる
既存のビューを拡張して作成する
• 既存ビューに機能追加したい場合に有効な手段
基底クラス(android.view.View)を継承して作成...
インテント
インテントとは?
コンポーネント間で、処理の依頼や、メッセージをやりとりする為の仕
組み
インテントを利用できるコンポーネントは、アクティビティ、ブロードキャ
ストレシーバ、サービス

インテントを利用する具体例
アクティビティAか...
インテント
インテントにより、コンポーネントを呼び出すには
インテントに、呼び出し先のコンポーネントの情報を含めて、Androidに
呼び出しを依頼する
コンポーネントAからコンポーネントBを呼び出す例
イ
ンテント
オブジェ
クト
を作成し ...
明示的インテント
インテントの使い方には、明示的なインテントと暗黙的なインテン
トの2つの使い方がある
明示的なインテント
呼び出し先のコンポーネントが明確な場合、コンポーネントを直接指定して
呼び出す方法。同一アプリケーション内のコンポーネン...
暗黙的インテント
暗黙的なインテント
呼び出し先のコンポーネントを指定せず、アクション(下図の例では” 電話
をかける”を指す)のみを指定する方法。主に他アプリケーションのコンポ
ーネントを呼び出す場合に使用する(別アプリケーション画面等)
起...
暗黙的インテント
暗黙的なインテント(続き)
暗黙的なインテントを使用すると、Androidに含まれているアプリケーション
と連携して、以下の事ができる
• 電話アプリケーション
– 指定した番号のダイヤルウィンドウを開く
• アドレス帳アプリ...
アクティビティのライフサイクル(
1)
ライフサイクルとは?
アクティビティにはオブジェクト生成~破棄に至るまでのライフサイク
ルが定義されている

アクティビティのライフサイクル
アクティビティの3種類の状態遷移が定められている
(フォアグラ...
アクティビティのライフサイクル(
2)
通知されるイベントを含むライフサイクル
Activity起動

onCreate()
・
"戻る"で元画面に復帰

onStart()

フ ア
ォ
グラ
ウンド

プ
ロセス破棄

onRestart(...
アクティビティのライフサイクル(
3)
アクティビティでは以下のイベントが通知される。開発者はこれら
の通知に応答する処理を作成できる

・ 通知されるイベント
#

イベント名

内容

1

onCreate

最初の起動時に発生するイベン...
アクティビティのライフサイクル(
4)
アクティビティの通知イベントに関する注意
onStop、onDestroyは必ず通知される保証はない
Androidはメモリ不足の状態に
なった場合、使用していないアプ
リケーションプロセスを強制終了
す...
この章のまとめ
まとめ
Activity
Androidアプリケーションの画面は、アクティビティの上にボタン、チェック
ボックス等の部品を配置し、 画面を作成する
基本的に1画面は1つのアクティビティで構成する
アクティビティは実行中、一時停止...
この章のまとめ
まとめ
Intent
コンポーネント間で、処理の依頼や、メッセージをやりとりする為の仕組み
• インテントを利用できるコンポーネントは、アクティビティ、ブロード
キャストレシーバ、サービス
インテントの使い方には、明示的なインテ...
3. 開発環境の準備
概要
開発環境の構築
別ドキュメント「開発環境の構築」を参照

エミュレータの作成
別ドキュメント「エミュレータの作成」を参照

環境変数の登録
別ドキュメント「環境変数の登録」を参照

This material is licensed un...
4. 開発ツールの使い方
概要
HelloWorldアプリケーションの作成を通じて、開発ツールの操作方
法を習得する
Android Development Tools(ADT)
エミュレータ、 Android Virtual Device (AVD)
Dalvik D...
ADT
Android Development Tools(ADT)とは?
AndroidアプリケーションをEclipseで開発する為のPlug-in

ADTが提供する機能
Androidプロジェクトの作成
Androidアプリケーションの実...
Hello Worldの表示
初めにAndroidプロジェクトを作成し、下記のアプリケーションを作
成する
完成イメージ

新規作成したプロジェクトは、左図
のようなHello world!と表示される
アプリケーションとして作成される

Th...
プロジェクトの作成(1)
Androidプロジェクトを作成する
1. File > NewからAndroid Application Project をクリック

This material is licensed under the Crea...
プロジェクトの作成(2)
2. [New Android Application]画面の設定
Apllication の設定情報を以下にし、Nextボタンをクリック

Propertiesの各項目に以下を入力する
項目

設定値

Applic...
プロジェクトの作成(3)
3. [New Android Application]画面の設定
Create Custom launcher iconのチェックを外し、Nextボタンをクリック

チェックを外す

This material is...
プロジェクトの作成(4)
4. [Create Activity]画面の設定
Create Activityにチェックし、Blank Activityを選択後にNextボタンをクリ
ックする

This material is licensed...
プロジェクトの作成(5)
5. [New Blank Activity]画面の設定
Finishボタンをクリックする

This material is licensed under the Creative
Commons License B...
アプリケーションの実行
6. Android Projectが生成され、下図(上)のように表示される
7. Package ExplorerからHelloWorldプロジェクトを選択し、右クリックし
、[Run As]-[Android App...
実行画面の確認
8. エミュレータが別ウィンドウで起動し、下記画面が表示されることを確
認する
アプリケーションに Hello world! と表記されている

This material is licensed under the Creat...
リソースファイル
画面デザインをリソースファイルで作成する
リソースファイルとは?
ソースコード以外の全て外部ファイル
Androidプロジェクトでは/res以下に格納されているファイル

リソースファイルの種類(一部抜粋)
#

リソースファ...
リソースエディタの種類
ADTには、リソースファイルの作成支援機能がある
ADTは3種類のリソースファイルエディタを提供する
レイアウトエディタ
• 画面デザインリソースファイルの作成をサポート
リソースエディタ
• 画面デザインリソースファイ...
画面デザインを作成する
レイアウトエディタの機能を使用して、HelloWorldにボタン、チェ
ックボックス、テキスト入力を含む画面を作成する
完成イメージ
ボタン、チェックボックスはレイアウトエディタのGUI機能を利用して追加す
る
テキスト...
リソースエディタの起動
画面デザインリソースファイルを開く
1. Package Explorerからres/layout/activity_main.xmlをダブルクリック
する
2. res/layout/activity_main.xml...
Viewを追加する
レイアウトエディタのGraphical Layoutタブで、画面デザインにボ
タン、チェックボックスを追加する
1. [Form Widgets]からButtonを選択し、スクリーン上にドラッグ&ドロッ
プする
2. 右図の...
Viewの表示テキストを変更する
4. スクリーン上のCheckBoxを選択し、Propertiesビュー上でTextプロパテ
ィを CheckBox から CB1 に変更する
5. 同様にButtonのTextプロパティをButton01に変...
実行確認
7. エミュレータが起動し、下記画面が表示されることを確認する
画面にボタン、チェックボックスが表示されている
ボタンの表示文字列が Button01 であることを確認する
チェックボックスの表示文字列が CB1 であることを確認する...
Viewの整列
Layoutを変更し、ボタンやテキストを整列する
デフォルトはRelativeLayoutになっている為、LinearLayoutに変更する

This material is licensed under the Creati...
Viewの整列(LinearLayout対応
)
LinearLayoutに変更する
1. プレビュー画面上で右クリックし、[Change Layout]を選択
2. New Layout Type を LinearLayout(Vertica...
Viewの整列 (余白の設定)
 余計な空白があって綺麗に整列されない場合
marginの確認をする
• LinearLayoutへの変更時、配置情報によってはmarginで補正されている
ことがあります。marginの値を消すことで対応出来...
実行確認
3. Package ExplorerからHelloWorldプロジェクトを選択し、右クリック
[Run As]-[Android Application]を選択する
4. エミュレータが起動し、画面デザインが変更されたことを確認する...
EditTextの追加
レイアウトエディタの<ファイル名>タブで、画面デザインにテキス
ト入力を追加する
1. レイアウトエディタのactivity_main.xmlタブをクリックし、レイアウ
トエディタにXMLソースが表示されることを確認する...
XMLエディタからEditTextを追加
2. テキスト入力ビューである EditTextタグをactivity_main.xmlに追加す
る
■res/layout/activity_main.xml(一部省略)
<?xml version=...
画面プレビューの確認
3. Layoutタブに表示を切り替えて、下記のようにEditTextが表示されてい
る事を確認する

表示切替
LayoutタブでEditText
が表示されている

追加したEditText
This material...
実行確認
4. Package ExplorerからHelloWorldプロジェクトを選択し、右クリック
[Run As]-[Android Application]を選択する
5. エミュレータが起動し、右画面が表示されることを確認する
• ...
リソースファイルの仕組み(1)
リソースファイルを使用した画面作成の仕組み
アクティビティはRクラスを使用し、画面デザインリソースファイルの内
容を取得する
Rクラス
• ビルド時に自動生成されるクラス
• プログラムからリソースファイルの情報...
リソースファイルの仕組み(2)
Rクラスとリソースファイルの関係
プログラムとリソース情報は、リソースIDで関連付けられている

■MainActivity.java

setContentView(R.layout.activity_main...
デザイン以外のリソースを使用す
る
HelloWorldに追加したボタンの表示文字列 Button01を Hello
Button に変更する
表示文字列は文字列リソースファイルに設定する
完成イメージ

This material is li...
文字レスリソースの定義
文字列リソースファイルは、アプリケーションで使用する文字列を
定義したリソースファイルである
(res/values/strings.xml)
■文字列リソースファイル(res/values/strings.xml)

...
文字列リソースの追加(1)
文字列リソースファイルに文字列設定を追加する
1. Package Explorerからres/values/strings.xmlをダブルクリックする
2. res/values/strings.xmlのファイルが...
文字列リソースの追加(2)
3. Resourcesタブの[Add…]ボタンをクリックし、追加要素の選択画面を表
示する
4. 選択画面から、String を選択し、[OK] ボタンをクリックする

This material is licen...
文字列リソースの追加(3)
5. ResourcesタブのResouces Elementsに String が追加されていることを
確認する
6. ResourcesタブのAttributes for StringのName、Valueに以下...
文字列リソースの追加(4)
7. Package Explorerからres/layout/activity_main.xmlをダブルクリック
する
8. レイアウトエディタが起動したら、Layoutタブを開いてButton01を選択
する
9...
文字列リソースの追加(5)
10.Package ExplorerからHelloWorldプロジェクトを選択し、右クリック
[Run As]-[Android Application]を選択する
11.エミュレータが起動し、右画面が表示されるこ...
マニフェストファイルを変更する
マニフェストエディタ
マニフェストファイルを変更する為の5つの機能がある
Manifestタブ
• バージョン情報、拡張情報等
Applicationタブ
• 使用コンポーネント情報、アイコン、アプリケーション名...
マニフェストファイルとは
マニフェストファイルとは?
AndroidManifest.xml(アプリケーションに1つ存在)
アプリケーションに関する以下の情報を定義する
アプリケーションのアイコン、タイトルの設定
使用するコンポーネント(Act...
アプリケーションにアクティビティを
追加(1)
アプリケーションにアクティビティを追加する
MainActivity2を追加する例:
 アプリケーションにアクティビティ
MainActivity2を追加する

ファイル名
追加アクティビ
ティ...
アプリケーションにアクティビティを
追加(2)
アプリケーションに追加したアクティビティを利用できるように
Applicationタブで設定する
1. Package ExplorerからAndroidManifest.xmlをダブルクリックす...
アプリケーションにアクティビティを
追加(3)
3. Application Nodesの[Add…]ボタンをクリックし、追加要素の選択画面
を表示する
4. 選択画面から Activity を選択し、[OK]ボタンをクリックする

This ...
アプリケーションにアクティビティを
追加(4)
5. Application NodesにActivityが追加されていることを確認する
6. Attributes for Activityの Name に下の値を入力する

項目名
Name
...
インターネットへのアクセス許可
を設定(1)
インターネットへのアクセス許可をPermissionsタブで設定する
1. Package ExplorerからAndroidManifest.xmlをダブルクリックする
2. マニフェストエディタ...
インターネットへのアクセス許可を
設定(2)
3. Permissionsの[Add…]ボタンをクリックし、追加要素の選択画面を表示
する
4. 選択画面から Uses Permission を選択し、[OK]ボタンをクリックする

This ...
インターネットへのアクセス許可を
設定(3)
5. Permissionsに Uses Permission が追加されていることを確認する
6. Attributes for Uses Permissionの Name のプルダウンから
an...
エミュレータの使用方法(1)
エミュレータとは?
Android Virtual Device(AVD)を読み込み、パソコン上でのハードウェ
ア動作をエミュレートする

エミュレータでサポートされていない機能・設定
実際の電話からの着信、実際の...
エミュレータの使用方法(2)
エミュレータの操作方法
#

1 2 3

デバイスキー

内容

1 音量DOWN
4

5

3 電源

電源入・切

6
7

4 検索

検索ウィジェットに
移動

5 戻る

前の画面に戻る

6 メニュ...
エミュレータの使用方法(3)
画面向きの切り替え(Ctrl + F11)
デバイスの向きに合わせた画面表示

縦長表示(ポートレート)

横長表示(ランドスケープ)

Androidエミュレータに関する詳細情報
http://developer...
デバッグツールの使用方法
ADT
Eclipseのデバッグ機能がAndroidアプリケーション開発で利用できる
ブレークポイント
ステップ実行

Dalvik Debug Monitor Services(DDMS)
Android SDK同梱...
DDMSの使用方法
DDMSを起動する
EclipseからDDMSを利用する
Eclipseのメニュー[Window]から[Open Perspective]-[DDMS]を選択する
EclipseのDDMSパースペクティブ

This mat...
DDMSのデバッグ機能
DDMSのデバッグ機能
モニタリング
アプリケーションが出力するログの参照
リソース使用状況の参照

エミュレータへのデータ送信
電話発信
SMS送信
位置情報送信

スクリーンショットの取得
プロセス管理
ガベージコレ...
アプリケーションログの参照
アプリケーションログの参照
ログを出力するには、android.util.Logクラスのログ出力メソッドを使
用する
■サンプルコード
import android.util.Log;
Log.e(“HelloWor...
Hello Worldからログを出力する
(1)
HelloWorldの起動時にアプリケーションログを出力
1. Package ExplorerからMainActivity.javaをダブルクリックする
2. MainActivity.jav...
Hello Worldからログを出力する
(2)
3. MainActivity#onCreateにログ出力を行う5つのコードを追加する
■MainActivity.java
package jp.oesf.tutorial;
import a...
Hello Worldからログを出力する
(3)
4. Package ExplorerからHelloWorldプロジェクトを選択し、右クリック
[Run As]-[Android Application]を選択する
5. エミュレータが起動し...
Hello Worldからログを出力する
(4)
6. EclipseのパースぺクティブをDDMSに変更し、DDMSの画面が表示される
ことを確認する
7. LogCatビューに5つのログが出力されていることを確認する

This materi...
この章のまとめ
まとめ(1/2)
Android Development Tools(ADT)
AndroidアプリケーションをEclipseで開発する為のPlug-in
Eclipseのデバッグ機能がAndroidアプリケーション開発で利用で...
この章のまとめ
まとめ(2/2)
エミュレータ、 Android Virtual Device (AVD)
Android Virtual Device(AVD)を読み込み、パソコン上でのハードウェア動
作をエミュレートする

Dalvik D...
5. ユーザーインタフェース
概要
本章では以下の内容について学習します
View

※1日コースでは(*)は省略します

TextView (*)
EditText (*)
Button
CheckBox
ImageView
ProgressBar
WebView

Vi...
View
Viewとは
ViewはButtonやTextViewなど画面を構成する部品の基底クラスです

Viewの例: TextView
TextViewはテキスト(文字列)を表示します

Viewの例2; Button
Buttonはボタン...
TextView(1)
TextViewとは
TextView は文字通り「テキスト(文字列)を表示する為のクラス」です
。文字列のサイズや文字列のカラーなど変更する事が可能

TextViewにテキストを表示する
[Hello,Android...
TextView(2)
TextViewの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでTextViewを選択して表示されている画面上にドラッグ&ドロップ
します
このアイテムを画面上
にドラ...
TextView(3)
Stringリソースの追加
res/values/strings.xml(リソースファイル)をエディタで開きリソー
スツール上から表示するテキストを追加します。
※4.3デザイン以外のリソースを使用するページ参照

Th...
TextView(4)
配置したTextViewへ初期表示テキストを定義
配置したTextViewを選択して、プロパティタブのプロパティTextの値を
選択して表示させるテキストを選択。先程追加したStringリソースを使
用します

This...
TextView(5)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http...
TextViewの設定を変更する(1)
TextViewのテキストサイズとテキストカラーを変更後の完成画面
配置したTextViewに対して、テキストサイズとテキストカラーを設定し
ますテキストカラー変更後の完成予定

This materia...
TextViewの設定を変更する(2)
Colorリソースの追加
colors.xmlの作成方法
/res/valuesを選択した状態でAndroidXMLファイル作成ボタンをクリッ
クする

xmlファイル作成画面で以下の通り設定

項目

...
TextViewの設定を変更する(3)
Colorリソースの追加
res/values/colors.xmlを開きリソースツール上からcolorリソースを定
義します
◆ Colorリソースの追加

RGBの数値を#16進数で設定
する
例) ...
TextViewの設定を変更する(4)
Dimensionリソースの追加
dimens.xmlの作成方法
/res/valuesを選択した状態でAndroidXMLファイル作成ボタンをクリッ
クする

項目

xmlファイル作成画面で以下のよう...
TextViewの設定を変更する(5)
Dimensionリソースの追加
res/values/dimens.xmlを開きリソースツール上からDimensionリソース
を定義します
◆ Dimensionリソースの追加

Text Sizeを...
TextViewの設定を変更する(6)
TextViewのテキスサイズとテキストカラーを設定
前項のプロパティタブのプロパティText colorとText sizeの値を設定し
ます

This material is licensed un...
TextViewの設定を変更する(7)
activity_main.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:too...
EditText(1)
EditTextとは
EditTextはユーザーからテキストボックスに入力された文字列を取得し
ます。
EditTextを表示して使用する。

This material is licensed under the Cr...
EditText(2)
EditTextの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでEditTextを選択して表示されている画面上にドラッグ&ドロップ
このアイテムを画面上
にドラッグ&ド...
EditText(3)
EditTextのレイアウト設定
配置したEditTextを選択して、プロパティタブのプロパティその他の
Layout widthとLayout heightを変更します

Layout width, Layout he...
EditText(4)
Stringリソースの追加
res/values/strings.xmlをエディタで開きリソースツール上から表示す
るテキストを追加します。 ※「4.3デザイン以外のリソースを使用する
」ページ参照

This mate...
EditText(5)
配置したEditTextへ初期表示テキストを定義
配置したEditTextを選択して、プロパティタブのプロパティTextの値を
選択して、表示させるテキストを選択します。先程追加したStringリソ
ースを使用します

...
EditText(6)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http...
EditTextの設定を変更する(1)
EditTextのテキストカラー設定と複数行のテキスト入力を可能とす
る設定
配置したEditTextに対して、テキストカラーと複数行のテキスト入力が
可能なように設定

This material is...
EditTextの設定を変更する(2)
表示する行数の追加
前項「TextViewの色と文字のサイズを変更する」を参照
配置したEditTextを選択後、プロパティタブのプロパティMaxLinesを選択し
て、何行までテキスト表示可能とするか定...
EditTextの設定を変更する(3)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:too...
Button(1)
Buttonとは
基本的な押しボタン
クリックイベントによって押したとき処理を実装することができる
基本的な押ボタン以外に、ToggleButtonやCheckBoxなど押した状態を管
理するボタンも存在する

This m...
Button(2)
Buttonの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでButtonを選択して表示されている画面上にドラッグ&ドロップし
ます
このアイテムを画面上に
ドラッグ&ドロッ...
Button(3)
Stringリソースの追加
res/values/strings.xml(リソースファイル)をエディタで開きリソー
スツール上から表示するテキストを追加する

This material is licensed under ...
Button(4)
配置したButtonへ表示するテキストを定義
配置したButtonを選択して、プロパティタブのプロパティTextの値を選
択して、表示させるテキストを選択。先程追加したStringリソースを使
用する。

This mate...
Button(5)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http:/...
Buttonのクリックイベントを取得(
1)
Buttonが押された時の動作
サンプル
Buttonが押下された時に表示されている文字が変更します

This material is licensed under the Creative
Co...
Buttonのクリックイベントを取得(
2)
「ボタンをクリックした」ことを認識するには
仕組み
ボタンをクリックすると「イベント」というものが発生する。このイベント
をプログラムで認識する為に「イベントリスナ」を準備します
イベントを認識した...
Buttonのクリックイベントを取得(
3)
画面上のボタンをクリックしたときに処理を実行する方法
Activityに「OnClickListener」インターフェースをインプリメントします
ActivityにonClickメソッドをオーバーラ...
Buttonのクリックイベントを取得(
4)
onClickメソッドでクリックしたビューを判断する方法
引数「view」から、ビューの「id」を取得して判断します
サンプルコード(activity_main.xmlの「android:id=@+...
Buttonクリック実習(1)
実習 1
サンプルで説明したプログラムを作成する
実習のテーマ
Buttonが押下された時に表示されている文字を変更します

This material is licensed under the Creativ...
Buttonクリック実習(2)
アプリケーション概要
<プロジェクト設定>
項目

設定値

Project name

ButtonSample

Build Target

※トレーニングで指定したバージョン

Application na...
Buttonクリック実習(3)
ActivityのButtonが押下された時のソースコード
public class MainActivity extends Activity implements OnClickListener {
Butt...
OnClickListener
OnClickListenerとは
クリックイベントを受け取るインターフェース
メソッドテーブル
戻り値

メソッド名

説明

void

onClick(View
v)

ビューがクリックされたときに呼び出さ...
OnClickListenerの実装方法
ButtonにOnClickListenerを実装する方法
ButtonにOnClickListenerを実装する方法は大きく4つあります
匿名クラスを使ってOnClickListenerを実装する
A...
方法1:匿名クラスを使う
匿名クラスを使いOnClickListenerを実装する
手順
1. Button#setOnClickListenerで引き数内でOnClickListenerを生成
2. OnClickメソッドをオーバライドする
...
方法2:Activityに
OnClickListenerを実装する
ActivityにOnClickListenerを実装する
手順
1. AnctivityにOnClickListenerを実装する
2. OnClickメソッドをオーバライ...
方法3:OnClickListener実装クラ
スを定義する
OnClickListenerに実装クラスを定義①
手順
1.
2.
3.
4.

OnClickListener実装クラスを定義する
OnClickメソッドをオーバライドする
Ac...
方法3:OnClickListener実装クラ
スを定義する
OnClickListenerに実装クラスを定義②
private OKOnClickListenerImple okListener = new OKOnClickListener...
方法4:レイアウトファイルに定義
する
レイアウトxmlファイルにOnClickListenerを設定する
手順
1. レイアウトxmlのonClickに呼び出したいメソッド名を設定します
<Button
android:id="@+id/bu...
CheckBox(1)
CheckBoxとは
CheckBoxは選択状態を持つことができる
CheckBoxをタップすると選択状態を変更する事ができる

This material is licensed under the Creative
...
CheckBox(2)
CheckBoxの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでCheckBoxを選択して表示されている画面上にドラッグ&ドロップ
します
このアイテムを画面上に
ドラ...
CheckBox(3)
Stringリソースの追加
「TextView」の「Stringリソースの追加」ページを参照

配置したCheckBoxへ表示テキストを定義
配置したCheckBoxを選択して、プロパティタブのプロパティTextの値を
...
CheckBox(4)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http...
CheckBoxのチェック状態を取得する
(1)
チェック状態の取得方法
OnClickListenerとOnCheckedChangeListenerを使用する方法があり、違
いは以下の通りです
OnClickListenerは、クリックイベ...
CheckBoxのチェック状態を取得する
(2)
OnCheckedChangeListenerを使用する場合
onCheckedChangedメソッドの引数isCheckedを使用してチェック状態を取得す
る
checkbox.setOnCh...
ImageView(1)
ImageViewとは
画像を表示する際に使用するViewクラス
配置したImageViewにdrawableから画像を読み込んで表示を行う

This material is licensed under the C...
ImageView(2)
画像の設定方法
設定したい画像をres/drawable-Xdpi

フォルダ内に格納します

※デフォルトで以下のファイルが格納されています

icon.png (Android2.2以前)
ic_launcher....
ImageView(3)
ImageViewの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでImageViewを選択して表示されている画面上にドラッグ&ドロップ
します
このアイテムを
画面上...
ImageView(4)
画像の設定方法
ImageViewに画像を読込むためにはプロパティを開き、Srcに読み込ませ
たい画像に設定します

ImageViewに
画像が設定さ
れる
読み込ませたい
画像を設定する
と
This materi...
ImageView(5)
XMLファイル
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:to...
ProgressBar(1)
ProgressBarとは
処理の進捗状況を表示する

ProgressBarを使用する
1つ目のProgressBarは以下のような設定値と
なっている
ProgressBarの値(黄色のバー)を50、
セカンダ...
ProgressBar(2)
ProgressBarの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでProgressBarを選択して表示されている画面上にドラッグ&ドロッ
プします
Progr...
ProgressBar(3)
ProgressBarのレイアウト設定
ProgressBarの設定値
View

Property

ProgressBar

android:id="@+id/progressBar1"
android:lay...
ProgressBar(4)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="h...
WebView(1)
WebViewとは
Webページを表示することができる
WebViewを使うことでアプリ内ブラウザを実現することができる

This material is licensed under the Creative
Comm...
WebView(2)
手順
1. レイアウトにWebViewを配置する
2. ActivityにWebページ読み込み処理を追加する
3. インターネットアクセスのパーミッションを追加する

This material is licensed u...
WebView(3)
1. レイアウトにWebViewを配置する

This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

179
WebView(4)
2. ActivityにWebページ読み込み処理を追加する
WeViewのオブジェクトを取得する
setWebViewClientメソッドでWebページの表示をWebViewで行うように指定す
る
• Webページのリンク...
WebView(5)
3. インターネットアクセスのパーミッションを追加する
WebViewで外部ネットワークに接続する場合インターネットアクセスのパーミ
ッションを追加する

<?xml version="1.0" encoding="utf...
WebView(6)
Webページが表示される表示

This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

182
ViewGroup
ViewGroupとは
ViewGroupは内部にTextViewなどの他のViewを含むことができるViewです
ViewGroupの内部に他のViewGroupを含むこともできる

ViewGroupの例:LinearL...
LinearLayout(1)
LinearLayoutとは
LinearLayoutはViewを垂直方向または水平方向に配置します

LinearLayoutを使用してViewを配置する
2つのTextViewを水平方向に配置
1. Text...
LinearLayout(2)
LinearLayoutの変更方法
デフォルトはRelativeLayoutになっている為、LinearLayoutに変更しま
す
プレビュー画面上で右クリックし、[Change Layout]を選択
New L...
LinearLayout(3)
LinearLayoutの設定
orientationプロパティでLinearLayoutの内部のViewを配置する方向を決
定します
verticalの場合は垂直方向に、horizontalの場合は水平方向にV...
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Androidプログラミング入門
Upcoming SlideShare
Loading in...5
×

Androidプログラミング入門

4,178

Published on

OESF公認
Androidプログラミング入門
公式トレーニングテキスト

Contributed by:
【作成】株式会社リーディング・エッジ社
    
【ご注意】
本テキストは、Creative Commons License BY-NC-SA 4.0のもとで提供されます。OESF会員またはコンソーシアムメンバーでない場合、本編の改変の有無にかかわらず、いかなる形態でも商用目的での利用は禁止されています。

Published in: Technology
0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,178
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide

Transcript of "Androidプログラミング入門"

  1. 1. Android プログラミング入門
  2. 2. トレーニングの目的 Androidアプリケーション開発に必要な基本的なプログラミング知 識を身につける。 演習を通して、アプリケーション開発を体験する 注意事項 本トレーニングは同じ資料で1日コース、2日コースを行います。 1日コースではトレーニングの一部を省略します This material is licensed under the Creative Commons License BY-NC-SA 4.0. 2
  3. 3. 目次 目次 1. 2. 3. 4. 5. 6. 7. Androidとは Androidアプリケーションのアーキテクチャ 開発環境の準備 開発ツールの使い方 ユーザーインタフェース 画面遷移 まとめ ※本トレーニングでは既に開発環境はセットアップ済です。そのため、「3. 開 発環境の準備」は説明のみになります。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 3
  4. 4. トレーニングスケジュール 2日コース 1日コース 1日目 1日目 Androidとは Androidアプリケーションのアーキテクチャ 開発環境の準備 開発ツールの使い方 ユーザーインタフェース(Viewまで) 2日目 ユーザーインタフェース(ViewGroup) 画面遷移 まとめ This material is licensed under the Creative Commons License BY-NC-SA 4.0. Androidとは Androidアプリケーションのア ーキテクチャ 開発環境の準備 開発ツールの使い方 ユーザーインタフェース • 一部省略 画面遷移 • 一部省略 まとめ 4
  5. 5. 受講するにあたって必要なスキル 何かしらのプログラミング言語での開発経験があること 下記の条件があるとより理解度が上がります オブジェクト指向の基本的な知識 Java開発経験 Eclipse使用経験 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 5
  6. 6. 開発環境 開発環境の説明 本トレーニングでは下記の開発ツールを用いる トレーニング用マシンは既に開発環境は構築済みです SDK付属のToolsに環境変数のパスが通っている ソフトウェア バージョン 統合開発環境 Eclipse IDE with built-in ADT Java SDK JDK 1.6 Android SDK Android 2.3.3 (API 10) Android Plug-in Android Development Tools (ADT) Ver.21.X.X This material is licensed under the Creative Commons License BY-NC-SA 4.0. 6
  7. 7. 開発環境 開発環境の説明 ディレクトリ構成 トレーニングに必要なファイルは全てandroid_traing_pnに用意してあります 。 以下はandroid_traing_pnのディレクトリ構成になります パス(c:¥android_trainig_pn以 下) 内容 adt-bundle-windows-x86¥sdk AndroidSDK adt-bundle-windows-x86¥eclipse eclipse workspace eclipseのワークスペース answer_docs/html 実習の解答ドキュメント This material is licensed under the Creative Commons License BY-NC-SA 4.0. 7
  8. 8. 演習の進め方 プロジェクトの共通設定 演習で作成するプロジェクトは特に指定のない限り以下のように設定に する 項目 設定値 Project name 演習毎に指定 Build Target ※講師の指示に従う Application name Project nameと同じ Package name jp.oesf.xxx ※xxxはプロジェクト名小文字が入 る ※パッケージ名は任意のものでもよ い Create Activity MainActivity Min SDK Version Build Targetと同じ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 8
  9. 9. 1. Androidとは
  10. 10. 概要 Androidとは 開発に必要なもの アプリケーション開発の流れ アプリケーションの紹介 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 10
  11. 11. Androidとは Androidとは 携帯端末用プラットフォームである 主に携帯電話、タブレットなどのプラットフォームとして利用されてい る 現在では、携帯電話、タブレット問わずさまざまなハードウェアに Androidは搭載されている AndroidはOS AndroidはOSなため多くのハードウェアメーカーからプラットフォームと して採用されている This material is licensed under the Creative Commons License BY-NC-SA 4.0. 11
  12. 12. ハンドセット、タブレット以外の Android ノートPC MediaController 腕時計型 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 12
  13. 13. Android組込みハードウェア This material is licensed under the Creative Commons License BY-NC-SA 4.0. 13
  14. 14. 豊富なインタフェース Androidのインタフェース NFC タッチパネル 各種センサ トラックボール カメラ GPS ソフトキーボード/ハードキーボード GPS NFC(Near Field Communication) Bluetooth This material is licensed under the Creative Commons License BY-NC-SA 4.0. Bluetooth タッチパネル 14
  15. 15. Androidのバージョン Androidのバージョン一覧 1.5 2.3 Cupcake Gingerbread 1.6 3.0–3.2 Donuts HoneyComb 2.0–2.1 4.0 Eclair Ice Cream Sandwich 2.2 4.1-4.2 Froyo Jelly Bean This material is licensed under the Creative Commons License BY-NC-SA 4.0. 15
  16. 16. Androidのバージョン 2.x系 2.x系の新機能 Version コードネーム APIレベル リリース 新機能 2.0/2.1 Eclair 5, 6, 7 2009/10/26 (2.0) 2009/12/3 (2.0.1) 2010/1/12 (2.1) • マルチタッチ • LiveWallPaper • Bluetooth 2.2 Froyo 8 2010/5/21 • Dalvik VM にJITコンパイラを搭 載(2〜5倍高速化) • クラウドとデバイスの連携API (C2DM) • テザリング対応 • Adobe Flash対応 • インストール済アプリの自動更 新 2.3 Gingerbread 9, 10 2010/12/6 • • • • • • ゲームのための改良 並列GC(目標3ms以下の停止) NFC(近距離無線通信)対応 複数のカメラを扱えるAPIの追加 SIPの標準サポート バッテリー管理機能の向上 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 16
  17. 17. Androidのバージョン 3.x系 3.xの新機能 Version コードネー ム APIレベル リリース 新機能 3.0 Honeycomb 11 2011/2/22 • 大型ディスプレイに最適化 • タブレット専用となった • マルチコアプロセッサのサポート 3.1 Honeycomb 12 2011/5/10 • • • • 3.2 Honeycomb 13 2011/7/15 • 広範囲なタブレット向けの最適化 • SDカードに対してのメディア同期 • スクリーンサポートの拡張 ユーザーインターフェースの改善 オープンアクセサリAPI USBホストAPI マウス、ゲームパッド、ジョイス ティックからの入力 • ホームスクリーンウィジェットのサ イズ変更 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 17
  18. 18. Androidのバージョン 4.x系 4.xの新機能 Version コードネー ム APIレベル リリース 新機能 4.0 Ice Cream Sandwich 14, 15 2011/10/08 • • • • • • • • • 4.1 Jelly Bean 16 2012/06/27 • • • • • • • ハンドセットとタブレットのUIの統合 Android Beam WiFi Direct Bluetooth Health Device Profile Notificationの向上 ロック画面で、カメラと音楽の操作 ランチャーのアプリ管理の改善 画像や動画のエフェクト 正確なカメラの測光、顔認識 Systrace アクセシビリティの拡張 双方向テキスト対応 Unicode 6.0 の絵文字対応 Notificationの拡張 リサイズ可能なアプリウィジェット ライトアウト・フルスクリーンモードへ の遷移API • Remoteable View の追加 • デバイスの追加と除去の検知 • Android Beam の改善 This material is licensed under the Creative 18 Commons License BY-NC-SA 4.0.
  19. 19. Androidのバージョン 4.x系 4.xの新機能 Version コードネーム APIレベル リリース 新機能 4.2 Jelly Bean 17 2012/11/13 • マルチアカウント • クイック設定 • フォトギャラリーのアップデート。360 度撮影。 • ジェスチャ文字入力 • Miracast ワイヤレスディスプレイ • Google Play 以外からインストールする アプリにもマルウェアスキャン This material is licensed under the Creative Commons License BY-NC-SA 4.0. 19
  20. 20. 開発準備 開発に必要なツール Eclipse Java SDK Android SDK Android Development Tools (ADT) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 20
  21. 21. アプリケーション開発の手順 開発手順 Eclipseでプロジェクト作成 画面デザインの作成 • Button、CheckBoxなどのパーツの配置 ソースコードを書く • 例)ボタンクリック時の処理など ビルド Androidアプリが出来上がる(apk) エミュレータ、実機に転送 アプリケーションの起動 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 21
  22. 22. Third Party Framework Kivy on Android PythonコードからAndroid アプリケーションを作成す る Monaca HTML5、JavaScript、CSSベ ースでAndroidアプリケー ションを作成する Unity AppInventor Webブラウザ上で画面をデ ザインし、ブロックをドラ ッグ&ドロップしてパズル のように組み合わせて作成 する 3Dコンテンツも作成できる ゲーム開発プラットフォー ム。Webやマルチプラット フォームでコンテンツの書 き出しができる This material is licensed under the Creative Commons License BY-NC-SA 4.0. 22
  23. 23. Third Party IDE IntelliJ IDEA AIDE JetBrains社が開発した、 Java言語など多言語対応の 統合開発環境 Android上でAndroidアプ リケーションの開発を行 えるIDE This material is licensed under the Creative Commons License BY-NC-SA 4.0. 23
  24. 24. Androidアプリケーションにの種類 Androidアプリケーションの種類 従来のハンドセットをターゲット タブレット対応のアプリケーション Webサービスと連携 特定のハードや機能に特化したアプリケーション ICS以降のアプリも既にリリース Android Marketのアプリケーション This material is licensed under the Creative Commons License BY-NC-SA 4.0. 24
  25. 25. 主なアプリケーションの紹介 Androidアプリケーションの紹介 Angry Birds 手軽に遊べるAndroid用アクションパズルゲーム Tinamium Webサービスと連携した画像検索アプリケーション ICS以降に対応 Kindle Amazonの電子書籍リーダーアプリケーション ブラウザで電子書籍を購入し、読む事が出来る This material is licensed under the Creative Commons License BY-NC-SA 4.0. 25
  26. 26. Android Market Android Market Google Play Googleが提供するコンテンツ配信サービス 「Android Market」「Google eBookstore」「Google Music」といった、これ まで個別に運営されてきた複数のサービスを統合 • https://play.google.com/store This material is licensed under the Creative Commons License BY-NC-SA 4.0. 26
  27. 27. Third Party Market Third Party Market Amazon Appstore for Android 米Amazon.comが、Androidアプリを販売 するアプリ市場 DeployGate 開発中のアプリケーション配信サービス 。 主に開発メンバーに対してテスト版アプ リをリモートで提供することが目的 Handster ホワイトレーベルのプラットフォームと ブランドのアプリケーションストアを提 供するアプリ市場 M-trix Market Androidアプリの成人向けコンテンツ専 用ストア This material is licensed under the Creative Commons License BY-NC-SA 4.0. 27
  28. 28. Androidの構成要素(1) Androidアプリケーションが動作する環境 AndroidアプリケーションはAndroidランタイムという仮想マシンの上で 動作する Androidランタイムの実行基盤としてLinuxを採用している為、アプリケ ーションはLinux上で動作している ソフトウェア(Androidプラットフォーム) アプリケーション アプリケーション Androidランタイム Linuxカーネル ハードウェア This material is licensed under the Creative Commons License BY-NC-SA 4.0. 28
  29. 29. Androidの構成要素(2) Androidは5つの要素で構成されている Androidの構成要素 アプリ ケーショ ン ⑤ Home アド レス 電話 アプリ ケー ショ ン ブラウザ アプリ ケーショ ンフレームワーク ④ アクティ ビ ティ ウィ ウ ンド マネージャ コンテンツ プロバイダ ビュー システム 通知 マネージャ パッ ケージ マネージャ 電話 マネージャ リ ソース マネージャ 位置 マネージャ ラ ブラ イ リ ② サーフェ ス マネージャ メ ア ディ フ レームワーク SSL センサー マネージャ Androidラ イ ンタ ム libc SQLite OpenGL |ES FreeType WebKit SGL コア ライブラリ Dalvik VM Linuxカ ーネル ① ディ スプレイ ド ライバ Bluetooth ド ライバ カメ ラ ド ライバ フ ッ ラ シュメ モリ ド イ ラ バ バインダ ( IRC) キーパッ ド ド ライバ USBド ライバ WiFiド ライバ オーディ オ ド ライバ ハード ア ウェ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 29 電源管理 ③
  30. 30. Androidの構成要素(3) 構成要素の概要 ① Linuxカーネル Linuxカーネル2.6をベースにAndroid用の変更を加えたLinuxカーネル (ただ しICS以降のカーネルはほぼ3.1ベースに) アプリケーションが動作する為に必要な機能を提供しており、ハードウェア ドライバを含んでいる ② ライブラリ C/C++で作成されたライブラリ • Webkit(Webブラウザ描画)、SQLite(データベース)、 OpenGL/ES ( 3D描画)等 アプリケーションが、アプリケーションフレームワーク経由で使用する ③ Androidランタイム Androidアプリケーションの実行環境 Androidで使用するJavaのコアライブラリ、実行環境である仮想マシン( Dalvik VM)が含まれる This material is licensed under the Creative Commons License BY-NC-SA 4.0. 30
  31. 31. Androidの構成要素(4) 構成要素の概要 ④ アプリケーションフレームワーク アプリケーションの動作やライブラリを使用する為に必要なJava APIを提供 する ⑤ アプリケーション アプリケーションフレームワークを使用して開発されたAndroidアプリケーシ ョン • 具体例として、電話、Webブラウザ、アドレス帳 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 31
  32. 32. この章のまとめ まとめ Androidとは 携帯端末用プラットフォームである 主に携帯電話、タブレットなどのプラットフォームとして利用されている 現在では、携帯電話、タブレット問わずさまざまなハードウェアにAndroidは 搭載されている AndroidはOSなため多くのハードウェアメーカーからプラットフォームとして 採用されている 開発に必要なもの Eclipse Java SDK Android SDK Android Development Tools (ADT) アプリケーション開発の流れ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 32
  33. 33. この章のまとめ まとめ (続き) アプリケーション開発の流れ Eclipseでプロジェクト作成 • 画面デザインの作成 – Button、CheckBoxなどのパーツの配置 • ソースコードを書く – 例)ボタンクリック時の処理など ビルド • Androidアプリが出来上がる(apk) エミュレータ、実機に転送 アプリケーションの起動 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 33
  34. 34. 2. Androidアプリケーションの アーキテクチャ
  35. 35. 概要 Activity View Intent ライフサイクル This material is licensed under the Creative Commons License BY-NC-SA 4.0. 35
  36. 36. 主要コンポーネント アプリケーションの主要な機能を実現する為、Androidにはコンポー ネントが用意されている 一般的なアプリケーションの主要な機能 ユーザー インター フェース コンポーネ ント間通信 データ イベント アクセス トリガー バック グラウンド 実行 実現 Activity Intent Content Broadcast Provider Receiver Service Androidの主要コンポーネントとインテント This material is licensed under the Creative Commons License BY-NC-SA 4.0. 36
  37. 37. 主要コンポーネント 基本となる4つのコンポーネントとインテント アクティビティ(Activity) インテント(Intent) ブロードキャストレシーバ(Broadcast Receiver) サービス(Service) コンテントプロバイダ(Content Provider) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 37
  38. 38. アクティビティ アクティビティとは? Androidアプリケーションの画面は、アクティビティの上にボタン、チェ ックボックス等の部品を配置し、 画面を作成する 基本的に1画面は1つのアクティビティで構成する アクティビティは実行中、一時停止といった状態を持っている This material is licensed under the Creative Commons License BY-NC-SA 4.0. 38
  39. 39. ActivityにUIを配置する Androidアプリケーションの画面は、アクティビティの上にボタン、 チェックボックス等の部品を配置し、画面を作成する ① ② 左図はアクティビティにビュー(ボタン)を配置してい る 1. アクティビティ 2. ビュー(ボタン) 左図の画面は以下のような構成になっている 2.ビュー(ボタン) 1.アクティビティ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 39
  40. 40. アクティビティとイベント ユーザーの画面入力に応答する処理を作成する事ができる 画面にて操作の情報(例えばボタンをクリックした)は、ビューを通じ てアクティビティに通知される アクティビティでは通知に応答する処理を作成する事ができる ボタンがクリックされた時の例 1.ボタンをクリック ボタン 3.ボタンクリック時の処理を実行 2.通知 アクティビティ public void onClick(View view) { // 画面にメッセージを表示する } This material is licensed under the Creative Commons License BY-NC-SA 4.0. 40
  41. 41. アクティビティと画面の関係 1画面は1つのアクティビティで構成する 複数の画面を持つアプリケーションの場合、画面の数だけアクティビテ ィを持っている アプリケーション アプリケーション アクティビティ アクティビティ アクティビティ アクティビティ 1つの画面で構成されている アプリケーション 3つの画面で構成されている アプリケーション This material is licensed under the Creative Commons License BY-NC-SA 4.0. 41
  42. 42. アクティビティ表示の仕組み アクティビティが表示される仕組み アクティビティは画面に1つだけ表示される Androidアプリケーションは、複数のアクティビティを持っていても、表示で きるアクティビティは1つだけである 新しいアクティビティを表示する場合、前のアクティビティは隠され、新し いアクティビティが上に表示される This material is licensed under the Creative Commons License BY-NC-SA 4.0. 42
  43. 43. アクティビティの状態 アクティビティの状態は複数あり、操作により状態が変化する アクティビティの状態は3種類定義されている フォアグラウンド状態 • アクティビティが表示されていて、カーソルがあたっている状態 バックグラウンド状態 • アクティビティが別のアクティビティによって隠されている状態 ビジブル状態 • アクティビティが表示されているが、操作できない状態 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 43
  44. 44. アクティビティの種類 画面の種類に応じて、アクティビティが用意されている アクティビティの一例 # 作成する画面 使用するアクティビティクラス 1 単票画面 Activityクラス 2 一覧表示画面 ListActivityクラス 3 地図画面(Google Map) MapActivityクラス 1.単票画面(Activity使用) 2.一覧画面(ListActivity使用) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 3.地図画面(MapActivity使用) 44
  45. 45. ビュー ビューとは? ボタン、チェックボックス等の部品である 複数のビューをまとめる機能を持つビューを、ビューグループと呼ぶ アクティビティ、ビュー、ビューグループの関係 ユーザーインターフェース View View View ViewGroup View ViewGroup Activity This material is licensed under the Creative Commons License BY-NC-SA 4.0. 45
  46. 46. 代表的なビュー 代表的なビュー View名 概要 TextView テキストを表示する Button 基本的な押しボタン EditText テキストの入力をする CheckBox ON/OFF状態をもつボタン Spinner リストから1つのアイテムを選択するボタン AnalogClock イメージ アナログ時計 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 46
  47. 47. 代表的なビューグループ 代表的なビューグループ 名前 概要 LinearLayout • 水平方向、または垂直方向にビューを配置するビューグループ • 画面内に収まらない場合は、スクロールバーを表示 TableLayout • 格子状にビューを配置するビューグループ(HTMLのtableタグに似ている) • 内部にTableRowを指定する TableRow • Table行の中にビューを配置するビューグループ ListView • 1列のリスト上にビューを配置するビューグループ • 画面内に収まらない場合は、スクロールバーを表示 TabHost • タブによって表示を切り替えるビューグループ RelaytiveLayout • 親子関係のViewを用意することによって、相対的な位置を指定して表示 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 47
  48. 48. カスタムビュー 独自のビューを作成できる(カスタムビュー) カスタムビューは3種類の方法で作成できる 既存のビューを拡張して作成する • 既存ビューに機能追加したい場合に有効な手段 基底クラス(android.view.View)を継承して作成する • まったく新しいビューを作成したい場合にとる手段 • 最も自由にビューの開発が可能 • 一から実装になる為、基底クラスに関する深い知識が必要 既存のビューや、ビューグループを組み合わせて、新たなビューを作成する ■詳細はAndroid Developersの開発ガイドを参照 http://developer.android.com/intl/ja/guide/topics/ui/custom-components.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 48
  49. 49. インテント インテントとは? コンポーネント間で、処理の依頼や、メッセージをやりとりする為の仕 組み インテントを利用できるコンポーネントは、アクティビティ、ブロードキャ ストレシーバ、サービス インテントを利用する具体例 アクティビティAからアクティビティBを起動する(画面遷移) アドレス帳アプリケーションから電話をかけるアプリケーションへ電話発信 を依頼する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 49
  50. 50. インテント インテントにより、コンポーネントを呼び出すには インテントに、呼び出し先のコンポーネントの情報を含めて、Androidに 呼び出しを依頼する コンポーネントAからコンポーネントBを呼び出す例 イ ンテント オブジェ クト を作成し 送信メ て、 ソッ を実行する ド "B"が起動する インテント • "B"を呼び出す イ ンテント イ ンテント Android This material is licensed under the Creative Commons License BY-NC-SA 4.0. 50
  51. 51. 明示的インテント インテントの使い方には、明示的なインテントと暗黙的なインテン トの2つの使い方がある 明示的なインテント 呼び出し先のコンポーネントが明確な場合、コンポーネントを直接指定して 呼び出す方法。同一アプリケーション内のコンポーネントを呼び出す場合に 使用する(画面遷移等) • コンポーネントを指定して呼び出す例 アプリ ケーショ ン "B"が起動する インテント • "B"を呼び出す イ ンテント イ ンテント Android This material is licensed under the Creative Commons License BY-NC-SA 4.0. 51
  52. 52. 暗黙的インテント 暗黙的なインテント 呼び出し先のコンポーネントを指定せず、アクション(下図の例では” 電話 をかける”を指す)のみを指定する方法。主に他アプリケーションのコンポ ーネントを呼び出す場合に使用する(別アプリケーション画面等) 起動するコンポーネントは各アプリケーションの設定情報からAndroidが決定 する 例)アクションのみ指定して呼び出す例 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 52
  53. 53. 暗黙的インテント 暗黙的なインテント(続き) 暗黙的なインテントを使用すると、Androidに含まれているアプリケーション と連携して、以下の事ができる • 電話アプリケーション – 指定した番号のダイヤルウィンドウを開く • アドレス帳アプリケーション – アドレス帳のリストを表示する – アドレス帳の中から1つのアドレス情報を表示する – 指定のアドレス情報を編集する • Webブラウザ – 指定したURLアドレスのWebサイトをブラウザで表示する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 53
  54. 54. アクティビティのライフサイクル( 1) ライフサイクルとは? アクティビティにはオブジェクト生成~破棄に至るまでのライフサイク ルが定義されている アクティビティのライフサイクル アクティビティの3種類の状態遷移が定められている (フォアグラウンド、バックグラウンド、ビジブル) 状態の変化が発生した時、イベントが通知される Activity起動 フ ア ォ グラ ウンド 実行中 ・ "戻る"で元画面に復帰 ・ 他Activityの割込み ・ 端末スリ ープ ・ 長時間無操作状態が続いた ・ Activityがフ アグラ ォ ウンド に表示( 戻るボタ ン等) プ ロセス破棄 ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 一時停止 ビジブル ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる ・ ・Activityが非表示 他Activityの割込み ・ 長時間無操作状態が続いた になった 状態遷移方向 終了 状態 This material is licensed under the Creative Activity破棄 Commons License BY-NC-SA 4.0. バッ ク グラ ウンド 54
  55. 55. アクティビティのライフサイクル( 2) 通知されるイベントを含むライフサイクル Activity起動 onCreate() ・ "戻る"で元画面に復帰 onStart() フ ア ォ グラ ウンド プ ロセス破棄 onRestart() onResume() 実行中 ・ 他Activityの割込み ・ 端末スリ ープ ・ 長時間無操作状態が続いた onPause() ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 一時停止 ・ Activityがフ アグラ ォ ウンド ビジブル ・ ・Activityが非表示に 他Activityの割込み なった ・ 長時間無操作状態が続いた に表示( 戻るボタ ン等) onStop() ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 終了 ・ Activityがフ アグラ ォ ウンド に表示( 戻るボタ ン等) バッ ク グラ ウンド 状態遷移方向 onDestroy() 状態 Activity破棄 This material is licensed under the Creative Commons License BY-NC-SA 4.0. Activityのイ ベント 55
  56. 56. アクティビティのライフサイクル( 3) アクティビティでは以下のイベントが通知される。開発者はこれら の通知に応答する処理を作成できる ・ 通知されるイベント # イベント名 内容 1 onCreate 最初の起動時に発生するイベント 2 onStart アクティビティが表示される直前に発生するイベント 3 onResume アクティビティが利用可能な状態(アクティブ状態)になる直前に発生するイベン ト 4 onPause アクティビティがビジブルになる直前に発生するイベント 5 onStop onPauseの後、Activityが非表示の状態になった場合に発生するイベント (メモリ不足の際、イベントが発生しない場合がある) 6 onRestart 終了状態のアクティビティが再度表示される際に発生するイベント 7 onDestory アクティビティが破棄される直前に発生するイベント (メモリ不足の際、イベントが発生しない場合がある) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 56
  57. 57. アクティビティのライフサイクル( 4) アクティビティの通知イベントに関する注意 onStop、onDestroyは必ず通知される保証はない Androidはメモリ不足の状態に なった場合、使用していないアプ リケーションプロセスを強制終了 する。 この場合、アクティビティのライフサ イクルでは、onStop、onDestroy は通知される事が保証されて いない 必ず必要な処理の場合はonPause で処理を行う onCreate() ・ "戻る"で元画面に復帰 onStart() onResume() プロセス破棄 実行中 ・ 他Activityの割込み ・ 端末スリ ープ ・ 長時間無操作状態が続いた onPause() ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 一時停止 ・ ・Activityが非表示に 他Activityの割込み なった ・ 長時間無操作状態が続いた onStop() ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 使用可能メモリが不足した場合の This material is licensed under the Creative 遷移ルート Commons License BY-NC-SA 4.0. 終了 onDestroy() 57
  58. 58. この章のまとめ まとめ Activity Androidアプリケーションの画面は、アクティビティの上にボタン、チェック ボックス等の部品を配置し、 画面を作成する 基本的に1画面は1つのアクティビティで構成する アクティビティは実行中、一時停止といった状態を持っている View ボタン、チェックボックス等の部品である 複数のビューをまとめる機能を持つビューを、ビューグループと呼ぶ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 58
  59. 59. この章のまとめ まとめ Intent コンポーネント間で、処理の依頼や、メッセージをやりとりする為の仕組み • インテントを利用できるコンポーネントは、アクティビティ、ブロード キャストレシーバ、サービス インテントの使い方には、明示的なインテントと暗黙的なインテントの2つの 使い方がある ライフサイクル アクティビティには、オブジェクト生成〜破棄に至るまでのライフサイクル が定義されている。 アクティビティの3種類の状態遷移が定められている (フォアグラウンド、バックグラウンド、ビジブル) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 59
  60. 60. 3. 開発環境の準備
  61. 61. 概要 開発環境の構築 別ドキュメント「開発環境の構築」を参照 エミュレータの作成 別ドキュメント「エミュレータの作成」を参照 環境変数の登録 別ドキュメント「環境変数の登録」を参照 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 61
  62. 62. 4. 開発ツールの使い方
  63. 63. 概要 HelloWorldアプリケーションの作成を通じて、開発ツールの操作方 法を習得する Android Development Tools(ADT) エミュレータ、 Android Virtual Device (AVD) Dalvik Debug Monitor Services (DDMS) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 63
  64. 64. ADT Android Development Tools(ADT)とは? AndroidアプリケーションをEclipseで開発する為のPlug-in ADTが提供する機能 Androidプロジェクトの作成 Androidアプリケーションの実行・デバッグ リソースファイルの作成支援 リソースファイルについては本節で解説 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 64
  65. 65. Hello Worldの表示 初めにAndroidプロジェクトを作成し、下記のアプリケーションを作 成する 完成イメージ 新規作成したプロジェクトは、左図 のようなHello world!と表示される アプリケーションとして作成される This material is licensed under the Creative Commons License BY-NC-SA 4.0. 65
  66. 66. プロジェクトの作成(1) Androidプロジェクトを作成する 1. File > NewからAndroid Application Project をクリック This material is licensed under the Creative Commons License BY-NC-SA 4.0. 66
  67. 67. プロジェクトの作成(2) 2. [New Android Application]画面の設定 Apllication の設定情報を以下にし、Nextボタンをクリック Propertiesの各項目に以下を入力する 項目 設定値 Application Name HelloWorld Project Name HelloWorld Package Name jp.oesf.tutori al Minimum Required SDK API 10 Target SDK API 10 Compile This material is licensed under the Creative Commons License BY-NC-SA 4.0. With Theme 67 API 10 None
  68. 68. プロジェクトの作成(3) 3. [New Android Application]画面の設定 Create Custom launcher iconのチェックを外し、Nextボタンをクリック チェックを外す This material is licensed under the Creative Commons License BY-NC-SA 4.0. 68
  69. 69. プロジェクトの作成(4) 4. [Create Activity]画面の設定 Create Activityにチェックし、Blank Activityを選択後にNextボタンをクリ ックする This material is licensed under the Creative Commons License BY-NC-SA 4.0. 69
  70. 70. プロジェクトの作成(5) 5. [New Blank Activity]画面の設定 Finishボタンをクリックする This material is licensed under the Creative Commons License BY-NC-SA 4.0. 70
  71. 71. アプリケーションの実行 6. Android Projectが生成され、下図(上)のように表示される 7. Package ExplorerからHelloWorldプロジェクトを選択し、右クリックし 、[Run As]-[Android Application]を選択する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 71
  72. 72. 実行画面の確認 8. エミュレータが別ウィンドウで起動し、下記画面が表示されることを確 認する アプリケーションに Hello world! と表記されている This material is licensed under the Creative Commons License BY-NC-SA 4.0. 72
  73. 73. リソースファイル 画面デザインをリソースファイルで作成する リソースファイルとは? ソースコード以外の全て外部ファイル Androidプロジェクトでは/res以下に格納されているファイル リソースファイルの種類(一部抜粋) # リソースファイル 内容 1 res/drawable(-Xdpi)/*.* 画像ファイル(.png、.jpeg、.gif) 2 res/layout/*.xml 画面デザイン情報(ex. activity_main.xml) 3 res/values/colors.xml 色情報 4 res/values/dimens.xml サイズ情報(ex. 5px,10dip,20pt) 5 res/values/strings.xml 文字列情報 ■リソースファイルに関する説明 http://developer.android.com/intl/ja/guide/topics/resources/resources-i18n.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 73
  74. 74. リソースエディタの種類 ADTには、リソースファイルの作成支援機能がある ADTは3種類のリソースファイルエディタを提供する レイアウトエディタ • 画面デザインリソースファイルの作成をサポート リソースエディタ • 画面デザインリソースファイル以外のリソースファイルの作成をサポー ト マニフェストエディタ • AndroidManifest.xmlの作成をサポート This material is licensed under the Creative Commons License BY-NC-SA 4.0. 74
  75. 75. 画面デザインを作成する レイアウトエディタの機能を使用して、HelloWorldにボタン、チェ ックボックス、テキスト入力を含む画面を作成する 完成イメージ ボタン、チェックボックスはレイアウトエディタのGUI機能を利用して追加す る テキスト入力は、画面デザインリソースファイル(XMLファイル)を直接編集 して追加する 階層構造 <LinearLayout> <TextVIew /> <Button /> <CheckBox /> <EditText /> </LinearLayout> – 各ビューの表示文字列は以下の通り設定する # ビュー 表示文字列 1 ボタン Button01 2 チェックボックス CB1 3 テキスト入力 This material is licensed under the Creative Commons License BY-NC-SA 4.0. EditText 75
  76. 76. リソースエディタの起動 画面デザインリソースファイルを開く 1. Package Explorerからres/layout/activity_main.xmlをダブルクリック する 2. res/layout/activity_main.xmlのファイルがレイアウトエディタで開か れ、右図の画面が表示されることを確認する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 76
  77. 77. Viewを追加する レイアウトエディタのGraphical Layoutタブで、画面デザインにボ タン、チェックボックスを追加する 1. [Form Widgets]からButtonを選択し、スクリーン上にドラッグ&ドロッ プする 2. 右図のようにボタンが表示される 3. 同様に、 [Form Widgets]からCheckBoxをスクリーン上にドラッグ&ド ロップし、表示されることを確認する ドラッグ&ドロッ プ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 77
  78. 78. Viewの表示テキストを変更する 4. スクリーン上のCheckBoxを選択し、Propertiesビュー上でTextプロパテ ィを CheckBox から CB1 に変更する 5. 同様にButtonのTextプロパティをButton01に変更する 6. Package ExplorerからHelloWorldプロジェクトを選択し、右クリックし 、[Run As]-[Android Application]を選択する • ※Propertiesビューの表示方法 • Window>ShowView>Other>General>properties This material is licensed under the Creative Commons License BY-NC-SA 4.0. 78
  79. 79. 実行確認 7. エミュレータが起動し、下記画面が表示されることを確認する 画面にボタン、チェックボックスが表示されている ボタンの表示文字列が Button01 であることを確認する チェックボックスの表示文字列が CB1 であることを確認する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 79
  80. 80. Viewの整列 Layoutを変更し、ボタンやテキストを整列する デフォルトはRelativeLayoutになっている為、LinearLayoutに変更する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 80
  81. 81. Viewの整列(LinearLayout対応 ) LinearLayoutに変更する 1. プレビュー画面上で右クリックし、[Change Layout]を選択 2. New Layout Type を LinearLayout(Vertical)に変更 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 81
  82. 82. Viewの整列 (余白の設定)  余計な空白があって綺麗に整列されない場合 marginの確認をする • LinearLayoutへの変更時、配置情報によってはmarginで補正されている ことがあります。marginの値を消すことで対応出来ます Propertiesビューを使っ て余計なmarginを削除す る This material is licensed under the Creative Commons License BY-NC-SA 4.0. 82
  83. 83. 実行確認 3. Package ExplorerからHelloWorldプロジェクトを選択し、右クリック [Run As]-[Android Application]を選択する 4. エミュレータが起動し、画面デザインが変更されたことを確認する • ボタンやテキストが垂直方向に配置されているか This material is licensed under the Creative Commons License BY-NC-SA 4.0. 83
  84. 84. EditTextの追加 レイアウトエディタの<ファイル名>タブで、画面デザインにテキス ト入力を追加する 1. レイアウトエディタのactivity_main.xmlタブをクリックし、レイアウ トエディタにXMLソースが表示されることを確認する ■res/layout/activity_main.xml(一部省 略) <LinearLayout ・・・・・・・・・ > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content” android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content” android:text="Button01" /> <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content” android:text=”CB1" /> This material is licensed under the Creative </LinearLayout> 84 Commons License BY-NC-SA 4.0.
  85. 85. XMLエディタからEditTextを追加 2. テキスト入力ビューである EditTextタグをactivity_main.xmlに追加す る ■res/layout/activity_main.xml(一部省略) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android ・・・・・・・・・・・ > <TextView ・・・・・・・・・・・ /> <Button ・・・・・・・・・></Button> <CheckBox ・・・・・・・・・ ></CheckBox> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="EditText"></EditText> </LinearLayout> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 85
  86. 86. 画面プレビューの確認 3. Layoutタブに表示を切り替えて、下記のようにEditTextが表示されてい る事を確認する 表示切替 LayoutタブでEditText が表示されている 追加したEditText This material is licensed under the Creative Commons License BY-NC-SA 4.0. 86
  87. 87. 実行確認 4. Package ExplorerからHelloWorldプロジェクトを選択し、右クリック [Run As]-[Android Application]を選択する 5. エミュレータが起動し、右画面が表示されることを確認する • テキスト入力が表示されている • テキスト入力の表示文字列が EditText である This material is licensed under the Creative Commons License BY-NC-SA 4.0. 87
  88. 88. リソースファイルの仕組み(1) リソースファイルを使用した画面作成の仕組み アクティビティはRクラスを使用し、画面デザインリソースファイルの内 容を取得する Rクラス • ビルド時に自動生成されるクラス • プログラムからリソースファイルの情報を取得する為に必要なクラス 取得したリソースファイル情報から、Activity#setContentViewによって 画面デザインを表示する ■MainActivity.java public class MainActivity extends Activity { R.layout.activity_mainが activity_main.xmlを示す <?xml version="1.0" encoding="utf-8"?> @Override <LinearLayout public void onCreate(Bundle savedInstanceState) { ・・・・・・・・・・・ super.onCreate(savedInstanceState); > ・・・・・・・・・・・ setContentView(R.layout.activity_main); <EditText } android:id="@+id/editText1“ } ・・・・・・・・・・・ android:text="EditText"></EditText> ■setContentView </LinearLayout> 画面デザインをアクティビティ上に表示する This material is licensed under the Creative 88 Commons License BY-NC-SA 4.0.
  89. 89. リソースファイルの仕組み(2) Rクラスとリソースファイルの関係 プログラムとリソース情報は、リソースIDで関連付けられている ■MainActivity.java setContentView(R.layout.activity_main); 参照 ■R.java public static final class layout { public static final int activity_main=0x7f030000; } リソースID This material is licensed under the Creative Commons License BY-NC-SA 4.0. リソース ファイル 89
  90. 90. デザイン以外のリソースを使用す る HelloWorldに追加したボタンの表示文字列 Button01を Hello Button に変更する 表示文字列は文字列リソースファイルに設定する 完成イメージ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 90
  91. 91. 文字レスリソースの定義 文字列リソースファイルは、アプリケーションで使用する文字列を 定義したリソースファイルである (res/values/strings.xml) ■文字列リソースファイル(res/values/strings.xml) 1. 画面上に表示する文字列を文字 列リソースファイルに追加する <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello_world">Hello world!</string> ・・・・・・・・・ </resources> 文字列 を参照 する ■画面デザインリソースファイル(res/layout/activity_main.xml)上のTextView <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> 実行 3.strings.xmlに 設定されている 文字列が表示さ れている 2. TextViewのTextプロパティから文字列リ ソースファイルの文字列を参照する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 91
  92. 92. 文字列リソースの追加(1) 文字列リソースファイルに文字列設定を追加する 1. Package Explorerからres/values/strings.xmlをダブルクリックする 2. res/values/strings.xmlのファイルがリソースエディタで開かれ、右図 の画面が表示されることを確認する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 92
  93. 93. 文字列リソースの追加(2) 3. Resourcesタブの[Add…]ボタンをクリックし、追加要素の選択画面を表 示する 4. 選択画面から、String を選択し、[OK] ボタンをクリックする This material is licensed under the Creative Commons License BY-NC-SA 4.0. 93
  94. 94. 文字列リソースの追加(3) 5. ResourcesタブのResouces Elementsに String が追加されていることを 確認する 6. ResourcesタブのAttributes for StringのName、Valueに以下の値を入 力する Attributes for Stringの設定値 項目名 Name button_label Value This material is licensed under the Creative Commons License BY-NC-SA 4.0. 設定値 Hello Button 94
  95. 95. 文字列リソースの追加(4) 7. Package Explorerからres/layout/activity_main.xmlをダブルクリック する 8. レイアウトエディタが起動したら、Layoutタブを開いてButton01を選択 する 9. PropertiesビューからTextプロパティを@string/button_label に変更 する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 95
  96. 96. 文字列リソースの追加(5) 10.Package ExplorerからHelloWorldプロジェクトを選択し、右クリック [Run As]-[Android Application]を選択する 11.エミュレータが起動し、右画面が表示されることを確認する ボタンの表示文字列が Hello Button になっている This material is licensed under the Creative Commons License BY-NC-SA 4.0. 96
  97. 97. マニフェストファイルを変更する マニフェストエディタ マニフェストファイルを変更する為の5つの機能がある Manifestタブ • バージョン情報、拡張情報等 Applicationタブ • 使用コンポーネント情報、アイコン、アプリケーション名等 Permissionsタブ • アクセス制限設定 Instrumentationタブ • プロファイラ等の情報収集用クラスの設定(TestRunner等) AndroidManifest.xmlタブ • XMLファイルの直接編集 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 97
  98. 98. マニフェストファイルとは マニフェストファイルとは? AndroidManifest.xml(アプリケーションに1つ存在) アプリケーションに関する以下の情報を定義する アプリケーションのアイコン、タイトルの設定 使用するコンポーネント(Activity、Service等)の定義 コンポーネントの振る舞いに関する定義 アプリケーションのアクセス制限設定 ライブラリの使用設定 ■マニフェストファイルに関する説明 http://developer.android.com/intl/ja/guide/topics/manifest/manifest-intro.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 98
  99. 99. アプリケーションにアクティビティを 追加(1) アプリケーションにアクティビティを追加する MainActivity2を追加する例:  アプリケーションにアクティビティ MainActivity2を追加する ファイル名 追加アクティビ ティ This material is licensed under the Creative Commons License BY-NC-SA 4.0. MainActivity2.java 99
  100. 100. アプリケーションにアクティビティを 追加(2) アプリケーションに追加したアクティビティを利用できるように Applicationタブで設定する 1. Package ExplorerからAndroidManifest.xmlをダブルクリックする 2. マニフェストエディタが起動する。マニフェストエディタの Applicationタブを選択し、右図の画面が表示されることを確認する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 100
  101. 101. アプリケーションにアクティビティを 追加(3) 3. Application Nodesの[Add…]ボタンをクリックし、追加要素の選択画面 を表示する 4. 選択画面から Activity を選択し、[OK]ボタンをクリックする This material is licensed under the Creative Commons License BY-NC-SA 4.0. 101
  102. 102. アプリケーションにアクティビティを 追加(4) 5. Application NodesにActivityが追加されていることを確認する 6. Attributes for Activityの Name に下の値を入力する 項目名 Name This material is licensed under the Creative Commons License BY-NC-SA 4.0. 設定値 MainActivity2 102
  103. 103. インターネットへのアクセス許可 を設定(1) インターネットへのアクセス許可をPermissionsタブで設定する 1. Package ExplorerからAndroidManifest.xmlをダブルクリックする 2. マニフェストエディタが起動する。エディタのPermissionsタブを選択 し、右図の画面が表示されることを確認する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 103
  104. 104. インターネットへのアクセス許可を 設定(2) 3. Permissionsの[Add…]ボタンをクリックし、追加要素の選択画面を表示 する 4. 選択画面から Uses Permission を選択し、[OK]ボタンをクリックする This material is licensed under the Creative Commons License BY-NC-SA 4.0. 104
  105. 105. インターネットへのアクセス許可を 設定(3) 5. Permissionsに Uses Permission が追加されていることを確認する 6. Attributes for Uses Permissionの Name のプルダウンから android.permission.INTERNETを選択する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 105
  106. 106. エミュレータの使用方法(1) エミュレータとは? Android Virtual Device(AVD)を読み込み、パソコン上でのハードウェ ア動作をエミュレートする エミュレータでサポートされていない機能・設定 実際の電話からの着信、実際の電話への発信 USB接続 カメラ・ビデオ撮影 ヘッドフォン接続 Bluetoothを使った通信 接続状態の設定 電池の充電レベル、AC電源の設定 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 106
  107. 107. エミュレータの使用方法(2) エミュレータの操作方法 # 1 2 3 デバイスキー 内容 1 音量DOWN 4 5 3 電源 電源入・切 6 7 4 検索 検索ウィジェットに 移動 5 戻る 前の画面に戻る 6 メニュー メニューを画面に表 示 7 ホーム ホームを表示 8 選択ボタン 選択ボタン 9 十字キー 8 9 2 音量UP カーソルの移動 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 107
  108. 108. エミュレータの使用方法(3) 画面向きの切り替え(Ctrl + F11) デバイスの向きに合わせた画面表示 縦長表示(ポートレート) 横長表示(ランドスケープ) Androidエミュレータに関する詳細情報 http://developer.android.com/intl/ja/guide/developing/tools/emulator.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 108
  109. 109. デバッグツールの使用方法 ADT Eclipseのデバッグ機能がAndroidアプリケーション開発で利用できる ブレークポイント ステップ実行 Dalvik Debug Monitor Services(DDMS) Android SDK同梱のデバッグツール 以下の機能がある モニタリング エミュレータ操作 エミュレータ・ハードウェア内の情報取得 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 109
  110. 110. DDMSの使用方法 DDMSを起動する EclipseからDDMSを利用する Eclipseのメニュー[Window]から[Open Perspective]-[DDMS]を選択する EclipseのDDMSパースペクティブ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 110
  111. 111. DDMSのデバッグ機能 DDMSのデバッグ機能 モニタリング アプリケーションが出力するログの参照 リソース使用状況の参照 エミュレータへのデータ送信 電話発信 SMS送信 位置情報送信 スクリーンショットの取得 プロセス管理 ガベージコレクション実行 プロセス停止 ファイル操作 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 111
  112. 112. アプリケーションログの参照 アプリケーションログの参照 ログを出力するには、android.util.Logクラスのログ出力メソッドを使 用する ■サンプルコード import android.util.Log; Log.e(“HelloWorld”, Log.w(“HelloWorld”, Log.i(“HelloWorld”, 報を出力するログ Log.d(“HelloWorld”, グ Log.v(“HelloWorld”, “Error Message”); “Warning Message”); “Infomation Message”); // エラーを出力するログ // ワーニングを出力するログ // アプリケーション動作の情 “Debug Message”); // デバッグ情報を出力するロ “Verbose Message”); // 詳細情報を出力するログ ログ出力 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 112
  113. 113. Hello Worldからログを出力する (1) HelloWorldの起動時にアプリケーションログを出力 1. Package ExplorerからMainActivity.javaをダブルクリックする 2. MainActivity.javaのソースコードが開かれ、右図の画面が表示される ことを確認する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 113
  114. 114. Hello Worldからログを出力する (2) 3. MainActivity#onCreateにログ出力を行う5つのコードを追加する ■MainActivity.java package jp.oesf.tutorial; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.e("HelloWorld", Log.w("HelloWorld", Log.i("HelloWorld", Log.d("HelloWorld", Log.v("HelloWorld", "Error Message"); "Warning Message"); "Infomation Message"); "Debug Message"); "Verbose Message"); } …………………… } This material is licensed under the Creative Commons License BY-NC-SA 4.0. 114
  115. 115. Hello Worldからログを出力する (3) 4. Package ExplorerからHelloWorldプロジェクトを選択し、右クリック [Run As]-[Android Application]を選択する 5. エミュレータが起動し、右画面が表示されることを確認する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 115
  116. 116. Hello Worldからログを出力する (4) 6. EclipseのパースぺクティブをDDMSに変更し、DDMSの画面が表示される ことを確認する 7. LogCatビューに5つのログが出力されていることを確認する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 116
  117. 117. この章のまとめ まとめ(1/2) Android Development Tools(ADT) AndroidアプリケーションをEclipseで開発する為のPlug-in Eclipseのデバッグ機能がAndroidアプリケーション開発で利用できる • ブレークポイント • ステップ実行 以下の機能がある • Androidプロジェクトの作成 • Androidアプリケーションの実行・デバッグ • リソースファイルの作成支援 – ADTは3種類のリソースファイルエディタを提供する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 117
  118. 118. この章のまとめ まとめ(2/2) エミュレータ、 Android Virtual Device (AVD) Android Virtual Device(AVD)を読み込み、パソコン上でのハードウェア動 作をエミュレートする Dalvik Debug Monitor Services (DDMS) Android SDK同梱のデバッグツール 以下の機能がある • モニタリング • エミュレータ操作 • エミュレータ・ハードウェア内の情報取得 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 118
  119. 119. 5. ユーザーインタフェース
  120. 120. 概要 本章では以下の内容について学習します View ※1日コースでは(*)は省略します TextView (*) EditText (*) Button CheckBox ImageView ProgressBar WebView View Group LinearLayout FrameLayout (*) RelativeLayout (*) OptionMenu Toast AlertDialog (*) まとめ課題 (*) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 120
  121. 121. View Viewとは ViewはButtonやTextViewなど画面を構成する部品の基底クラスです Viewの例: TextView TextViewはテキスト(文字列)を表示します Viewの例2; Button Buttonはボタンを表示します This material is licensed under the Creative Commons License BY-NC-SA 4.0. 121
  122. 122. TextView(1) TextViewとは TextView は文字通り「テキスト(文字列)を表示する為のクラス」です 。文字列のサイズや文字列のカラーなど変更する事が可能 TextViewにテキストを表示する [Hello,Android!!]とテキストを表示しましょう This material is licensed under the Creative Commons License BY-NC-SA 4.0. 122
  123. 123. TextView(2) TextViewの追加 activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ ールでTextViewを選択して表示されている画面上にドラッグ&ドロップ します このアイテムを画面上 にドラッグ&ドロップ します。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 123
  124. 124. TextView(3) Stringリソースの追加 res/values/strings.xml(リソースファイル)をエディタで開きリソー スツール上から表示するテキストを追加します。 ※4.3デザイン以外のリソースを使用するページ参照 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 124
  125. 125. TextView(4) 配置したTextViewへ初期表示テキストを定義 配置したTextViewを選択して、プロパティタブのプロパティTextの値を 選択して表示させるテキストを選択。先程追加したStringリソースを使 用します This material is licensed under the Creative Commons License BY-NC-SA 4.0. 125
  126. 126. TextView(5) 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" > 実行結果 <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_android" tools:context=".MainActivity" /> </RelativeLayout> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 126
  127. 127. TextViewの設定を変更する(1) TextViewのテキストサイズとテキストカラーを変更後の完成画面 配置したTextViewに対して、テキストサイズとテキストカラーを設定し ますテキストカラー変更後の完成予定 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 127
  128. 128. TextViewの設定を変更する(2) Colorリソースの追加 colors.xmlの作成方法 /res/valuesを選択した状態でAndroidXMLファイル作成ボタンをクリッ クする xmlファイル作成画面で以下の通り設定 項目 設定値 Resource Type Values Project 対象のプロジェクト名 File colors.xml Finishボタンをクリックして終了する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 128
  129. 129. TextViewの設定を変更する(3) Colorリソースの追加 res/values/colors.xmlを開きリソースツール上からcolorリソースを定 義します ◆ Colorリソースの追加 RGBの数値を#16進数で設定 する 例) #FF0000 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 129
  130. 130. TextViewの設定を変更する(4) Dimensionリソースの追加 dimens.xmlの作成方法 /res/valuesを選択した状態でAndroidXMLファイル作成ボタンをクリッ クする 項目 xmlファイル作成画面で以下のように設定する 設定値 Resource Type Values Project 対象のプロジェクト名 File dimens.xml ※最新バージョンではプロジェクト新規作成時 Finishボタンをクリックして終了する に追加済になっているis licensed under the Creative This material Commons License BY-NC-SA 4.0. 130
  131. 131. TextViewの設定を変更する(5) Dimensionリソースの追加 res/values/dimens.xmlを開きリソースツール上からDimensionリソース を定義します ◆ Dimensionリソースの追加 Text Sizeを30spに設定する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 131
  132. 132. TextViewの設定を変更する(6) TextViewのテキスサイズとテキストカラーを設定 前項のプロパティタブのプロパティText colorとText sizeの値を設定し ます This material is licensed under the Creative Commons License BY-NC-SA 4.0. 132
  133. 133. TextViewの設定を変更する(7) 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" > 実行結果 <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_android" android:textColor="@color/hello_android_color" android:textSize=”@dimen/hello_android_textsize" tools:context=".MainActivity" /> </RelativeLayout> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 133
  134. 134. EditText(1) EditTextとは EditTextはユーザーからテキストボックスに入力された文字列を取得し ます。 EditTextを表示して使用する。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 134
  135. 135. EditText(2) EditTextの追加 activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ ールでEditTextを選択して表示されている画面上にドラッグ&ドロップ このアイテムを画面上 にドラッグ&ドロップ します。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 135
  136. 136. EditText(3) EditTextのレイアウト設定 配置したEditTextを選択して、プロパティタブのプロパティその他の Layout widthとLayout heightを変更します Layout width, Layout heightはレイアウトの横幅と縦の長さを指定しま す match_parentとすれば、縦または横に属している親ビューの大きさまで 描きます wrap_contentとすれば、内容に応じて可変の長さになります This material is licensed under the Creative Commons License BY-NC-SA 4.0. 136
  137. 137. EditText(4) Stringリソースの追加 res/values/strings.xmlをエディタで開きリソースツール上から表示す るテキストを追加します。 ※「4.3デザイン以外のリソースを使用する 」ページ参照 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 137
  138. 138. EditText(5) 配置したEditTextへ初期表示テキストを定義 配置したEditTextを選択して、プロパティタブのプロパティTextの値を 選択して、表示させるテキストを選択します。先程追加したStringリソ ースを使用します This material is licensed under the Creative Commons License BY-NC-SA 4.0. 138
  139. 139. EditText(6) 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" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:ems="10" android:text="@string/default_message" /> </RelativeLayout> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 139
  140. 140. EditTextの設定を変更する(1) EditTextのテキストカラー設定と複数行のテキスト入力を可能とす る設定 配置したEditTextに対して、テキストカラーと複数行のテキスト入力が 可能なように設定 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 140
  141. 141. EditTextの設定を変更する(2) 表示する行数の追加 前項「TextViewの色と文字のサイズを変更する」を参照 配置したEditTextを選択後、プロパティタブのプロパティMaxLinesを選択し て、何行までテキスト表示可能とするか定義します This material is licensed under the Creative Commons License BY-NC-SA 4.0. 141
  142. 142. EditTextの設定を変更する(3) 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" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:ems="10" android:maxLines="3" android:text="@string/default_message" android:textColor="@color/hello_android_color" /> </RelativeLayout> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 142
  143. 143. Button(1) Buttonとは 基本的な押しボタン クリックイベントによって押したとき処理を実装することができる 基本的な押ボタン以外に、ToggleButtonやCheckBoxなど押した状態を管 理するボタンも存在する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 143
  144. 144. Button(2) Buttonの追加 activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ ールでButtonを選択して表示されている画面上にドラッグ&ドロップし ます このアイテムを画面上に ドラッグ&ドロップしま す。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 144
  145. 145. Button(3) Stringリソースの追加 res/values/strings.xml(リソースファイル)をエディタで開きリソー スツール上から表示するテキストを追加する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 145
  146. 146. Button(4) 配置したButtonへ表示するテキストを定義 配置したButtonを選択して、プロパティタブのプロパティTextの値を選 択して、表示させるテキストを選択。先程追加したStringリソースを使 用する。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 146
  147. 147. Button(5) 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" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:text="@string/button" /> </RelativeLayout> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 147
  148. 148. Buttonのクリックイベントを取得( 1) Buttonが押された時の動作 サンプル Buttonが押下された時に表示されている文字が変更します This material is licensed under the Creative Commons License BY-NC-SA 4.0. 148
  149. 149. Buttonのクリックイベントを取得( 2) 「ボタンをクリックした」ことを認識するには 仕組み ボタンをクリックすると「イベント」というものが発生する。このイベント をプログラムで認識する為に「イベントリスナ」を準備します イベントを認識したいボタンに対して、あらかじめ作成したイベントリスナ を登録しておきます ボタンでイベントが発生すると、特定のメソッドが呼び出される イベント発生 ボタンク リック public void onClick(View view) { // 処理 処理が実行 } This material is licensed under the Creative Commons License BY-NC-SA 4.0. 149
  150. 150. Buttonのクリックイベントを取得( 3) 画面上のボタンをクリックしたときに処理を実行する方法 Activityに「OnClickListener」インターフェースをインプリメントします ActivityにonClickメソッドをオーバーライドする サンプルではButtonの表示文字列を変更しています View#setOnClickListenerメソッドを使用してボタンにイベントリスナを登録 サンプルコード(Activityをイベントリスナにした例) import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; public class SampleActivity extends Activity implements OnClickListener { ・・・ ① Button button; public void onClick(View view) { button.setText(“Button clicked!”); findViewById ・・・ ② 引数で指定した id を持つ } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)findViewById(R.id.button1); ・・・ button.setOnClickListener(this); } @Override This material is licensed under the Creative public boolean onCreateOptionsMenu(Menu menu) { Commons License BY-NC-SA 4.0. ・・・・・・・・・ ビューオブジェクトを取得 するActivityクラスのメ ソッド ③ 150
  151. 151. Buttonのクリックイベントを取得( 4) onClickメソッドでクリックしたビューを判断する方法 引数「view」から、ビューの「id」を取得して判断します サンプルコード(activity_main.xmlの「android:id=@+id/button1」がクリ ックされたことを判断する例) public void onClick(View view) { if (view.getId() == R.id.button1) { ・・・・・・・・ } View#getId } Viewオブジェクトからidを 取得するメソッド This material is licensed under the Creative Commons License BY-NC-SA 4.0. 151
  152. 152. Buttonクリック実習(1) 実習 1 サンプルで説明したプログラムを作成する 実習のテーマ Buttonが押下された時に表示されている文字を変更します This material is licensed under the Creative Commons License BY-NC-SA 4.0. 152
  153. 153. Buttonクリック実習(2) アプリケーション概要 <プロジェクト設定> 項目 設定値 Project name ButtonSample Build Target ※トレーニングで指定したバージョン Application name ButtonSample Package name jp.oesf.buttonsample Create Activity MainActivity This material is licensed under the Creative Commons License BY-NC-SA 4.0. 153
  154. 154. Buttonクリック実習(3) ActivityのButtonが押下された時のソースコード public class MainActivity extends Activity implements OnClickListener { Button button; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // R.javaファイルからリソース情報を取得 button = (Button)findViewById(R.id.button1); button.setOnClickListener(this); } public void onClick(View view){ // ボタンがクリックされたときに呼び出す button.setText("Button clicked!!"); } @Override public boolean onCreateOptionsMenu(Menu menu) { ・・・・・・・・・ } } This material is licensed under the Creative Commons License BY-NC-SA 4.0. 154
  155. 155. OnClickListener OnClickListenerとは クリックイベントを受け取るインターフェース メソッドテーブル 戻り値 メソッド名 説明 void onClick(View v) ビューがクリックされたときに呼び出さ れます。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 155
  156. 156. OnClickListenerの実装方法 ButtonにOnClickListenerを実装する方法 ButtonにOnClickListenerを実装する方法は大きく4つあります 匿名クラスを使ってOnClickListenerを実装する ActivityにOnClickListenerを実装する OnClickListener実装クラスを定義する レイアウトxmlファイルにonClickを設定する 次のページから具体的な実装方法を説明します This material is licensed under the Creative Commons License BY-NC-SA 4.0. 156
  157. 157. 方法1:匿名クラスを使う 匿名クラスを使いOnClickListenerを実装する 手順 1. Button#setOnClickListenerで引き数内でOnClickListenerを生成 2. OnClickメソッドをオーバライドする Button bt = (Button)findViewById(R.id.button1); bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // クリックされたときの処理 } ・・・ ① ・・・ ② }); This material is licensed under the Creative Commons License BY-NC-SA 4.0. 157
  158. 158. 方法2:Activityに OnClickListenerを実装する ActivityにOnClickListenerを実装する 手順 1. AnctivityにOnClickListenerを実装する 2. OnClickメソッドをオーバライドする 3. Button#setOnClickListenerで引数にthisを指定する public class MainActivity extends Activity implements OnClickListener { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // OnCLickListenerの実装 Button bt = (Button) findViewById(R.id.button1); // クリックされるとこのメソッドが呼ばれる bt.setOnClickListener(this); ・・・ } public void onClick(View v) { if (v.getId() == R.id.button1) { // Buton1が押されたときの処理 } else if (v.getId() == R.id.button2) { // Buton2が押されたときの処理 } } This material is licensed under the Creative Commons License BY-NC-SA 4.0. ・・・ ③ ・・・ ② 158 ①
  159. 159. 方法3:OnClickListener実装クラ スを定義する OnClickListenerに実装クラスを定義① 手順 1. 2. 3. 4. OnClickListener実装クラスを定義する OnClickメソッドをオーバライドする Activityに定義したクラスのインスタンスを作成する Button#setOnClickListenerに定義したクラスを実装する class OKOnClickListenerImple implements OnClickListener{・・・ ① @Override public void onClick(View v) { //クリックされたときの処理 ・・・ ② } } class CancelOnClickListenerImple implements OnClickListener{・・・ @Override public void onClick(View v) { //クリックされたときの処理 } } This material is licensed under the Creative Commons License BY-NC-SA 4.0. ・・・ ② 159 ①
  160. 160. 方法3:OnClickListener実装クラ スを定義する OnClickListenerに実装クラスを定義② private OKOnClickListenerImple okListener = new OKOnClickListenerImple(); private CancelOnClickListenerImple cancelListener = new CancelOnClickListenerImple(); ③ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btOk = (Button)findViewById(R.id.button1); btOk.setOnClickListener(okListener); ・・・ ④ Button btCancel = (Button)findViewById(R.id.button2); btCancel.setOnClickListener(cancelListener); } This material is licensed under the Creative Commons License BY-NC-SA 4.0. ・・・ ④ 160 ・・・
  161. 161. 方法4:レイアウトファイルに定義 する レイアウトxmlファイルにOnClickListenerを設定する 手順 1. レイアウトxmlのonClickに呼び出したいメソッド名を設定します <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:text="Button" android:onClick=“onClickButton1” > </Button> ・・・ ① 2. Activityに1で設定したメソッドを実装します • 引数にViewを指定する public void onClickButton1(View v){ ・・・ //Buton01が押されたときの処理 } This material is licensed under the Creative Commons License BY-NC-SA 4.0. ② 161
  162. 162. CheckBox(1) CheckBoxとは CheckBoxは選択状態を持つことができる CheckBoxをタップすると選択状態を変更する事ができる This material is licensed under the Creative Commons License BY-NC-SA 4.0. 162
  163. 163. CheckBox(2) CheckBoxの追加 activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ ールでCheckBoxを選択して表示されている画面上にドラッグ&ドロップ します このアイテムを画面上に ドラッグ&ドロップしま す。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 163
  164. 164. CheckBox(3) Stringリソースの追加 「TextView」の「Stringリソースの追加」ページを参照 配置したCheckBoxへ表示テキストを定義 配置したCheckBoxを選択して、プロパティタブのプロパティTextの値を 選択して、表示させるテキストを選択します。先程追加したStringリソ ースを使用します This material is licensed under the Creative Commons License BY-NC-SA 4.0. 164
  165. 165. CheckBox(4) 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" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:text="@string/hello_android" /> </RelativeLayout> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 165
  166. 166. CheckBoxのチェック状態を取得する (1) チェック状態の取得方法 OnClickListenerとOnCheckedChangeListenerを使用する方法があり、違 いは以下の通りです OnClickListenerは、クリックイベントが発生したタイミングで呼び出される OnCheckedChangeListenerは、チェック状態が変更されたタイミングで呼び出 される OnClickListenerとOnCheckedChangeListenerの使用方法 OnClickListenerを使用する場合 onClickメソッド内でisCheckedメソッドを使用してチェック状態を取得しま す。 @Override public void onClick(View v) { if(checkebox.isChecked() == true) { // チェックされた状態の時の処理を記述 }else { // チェックされていない状態の時の処理を記述 } } This material is licensed under the Creative Commons License BY-NC-SA 4.0. 166
  167. 167. CheckBoxのチェック状態を取得する (2) OnCheckedChangeListenerを使用する場合 onCheckedChangedメソッドの引数isCheckedを使用してチェック状態を取得す る checkbox.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked == true){ // チェックされた状態の時の処理を記述 } else { // チェックされていない状態の時の処理を記述 } } }); This material is licensed under the Creative Commons License BY-NC-SA 4.0. 167
  168. 168. ImageView(1) ImageViewとは 画像を表示する際に使用するViewクラス 配置したImageViewにdrawableから画像を読み込んで表示を行う This material is licensed under the Creative Commons License BY-NC-SA 4.0. 168
  169. 169. ImageView(2) 画像の設定方法 設定したい画像をres/drawable-Xdpi フォルダ内に格納します ※デフォルトで以下のファイルが格納されています icon.png (Android2.2以前) ic_launcher.png (Android2.3以降) ※launcher画像はプロジェクトを作成する時に変更可能 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 169
  170. 170. ImageView(3) ImageViewの追加 activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ ールでImageViewを選択して表示されている画面上にドラッグ&ドロップ します このアイテムを 画面上にドラッ グ&ドロップし ます。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 170
  171. 171. ImageView(4) 画像の設定方法 ImageViewに画像を読込むためにはプロパティを開き、Srcに読み込ませ たい画像に設定します ImageViewに 画像が設定さ れる 読み込ませたい 画像を設定する と This material is licensed under the Creative Commons License BY-NC-SA 4.0. 171
  172. 172. ImageView(5) 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" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:src="@drawable/ic_launcher" /> </RelativeLayout> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 172
  173. 173. ProgressBar(1) ProgressBarとは 処理の進捗状況を表示する ProgressBarを使用する 1つ目のProgressBarは以下のような設定値と なっている ProgressBarの値(黄色のバー)を50、 セカンダリ値(薄い黄色のバー)を75、 最大値(灰色のバー)を100、 スタイルに水平方向を指定 2つ目のProgressBarは進捗状況に値を 使用しないため永久にループする This material is licensed under the Creative Commons License BY-NC-SA 4.0. 173
  174. 174. ProgressBar(2) ProgressBarの追加 activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ ールでProgressBarを選択して表示されている画面上にドラッグ&ドロッ プします ProgressBar(Horizontal)とProgressBar (Large)の2つ配置します このアイテムを画面 上にドラッグ&ド ロップします。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 174
  175. 175. ProgressBar(3) ProgressBarのレイアウト設定 ProgressBarの設定値 View Property ProgressBar android:id="@+id/progressBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="50" android:secondaryProgress="75" android:max="100" style=“?android:attr/progressBarStyleH orizontal“(※) ProgressBar android:id="@+id/progressBar2" android:layout_width=“wrap_content " android:layout_height="wrap_content" ※「style=“?android:attr/progressBarStyleHorizontal”」を指定することにより ProgressBarを水平に設定する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 175
  176. 176. ProgressBar(4) 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" > <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:max="100" android:progress="50" android:secondaryProgress="75" /> <ProgressBar android:id="@+id/progressBar2" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/progressBar1" android:layout_centerHorizontal="true" android:layout_marginTop="10dp" /> </RelativeLayout> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 176
  177. 177. WebView(1) WebViewとは Webページを表示することができる WebViewを使うことでアプリ内ブラウザを実現することができる This material is licensed under the Creative Commons License BY-NC-SA 4.0. 177
  178. 178. WebView(2) 手順 1. レイアウトにWebViewを配置する 2. ActivityにWebページ読み込み処理を追加する 3. インターネットアクセスのパーミッションを追加する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 178
  179. 179. WebView(3) 1. レイアウトにWebViewを配置する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 179
  180. 180. WebView(4) 2. ActivityにWebページ読み込み処理を追加する WeViewのオブジェクトを取得する setWebViewClientメソッドでWebページの表示をWebViewで行うように指定す る • Webページのリンクを選択したときにブラウザが起動するのを防ぐため loadUrlメソッドで、表示したいULRを引数に指定する public class MainActivity extends Activity { WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView)findViewById(R.id.webView1); webView.setWebViewClient(new WebViewClient() {}); webView.loadUrl("http://www.google.com"); } } This material is licensed under the Creative Commons License BY-NC-SA 4.0. 180
  181. 181. WebView(5) 3. インターネットアクセスのパーミッションを追加する WebViewで外部ネットワークに接続する場合インターネットアクセスのパーミ ッションを追加する <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.webviewsample" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10" /> <uses-permission android:name="android.permission.INTERNET"/> ...略... </manifest> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 181
  182. 182. WebView(6) Webページが表示される表示 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 182
  183. 183. ViewGroup ViewGroupとは ViewGroupは内部にTextViewなどの他のViewを含むことができるViewです ViewGroupの内部に他のViewGroupを含むこともできる ViewGroupの例:LinearLayout Viewを垂直方向または水平方向に配置します This material is licensed under the Creative Commons License BY-NC-SA 4.0. 183
  184. 184. LinearLayout(1) LinearLayoutとは LinearLayoutはViewを垂直方向または水平方向に配置します LinearLayoutを使用してViewを配置する 2つのTextViewを水平方向に配置 1. TextView 「Hello world !」 2. TextView 「Hello World, MainActivity!」 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 184
  185. 185. LinearLayout(2) LinearLayoutの変更方法 デフォルトはRelativeLayoutになっている為、LinearLayoutに変更しま す プレビュー画面上で右クリックし、[Change Layout]を選択 New Layout Type を LinearLayout(horizontal)に変更 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 185
  186. 186. LinearLayout(3) LinearLayoutの設定 orientationプロパティでLinearLayoutの内部のViewを配置する方向を決 定します verticalの場合は垂直方向に、horizontalの場合は水平方向にViewが配 置されます 配置する方向の変更はLinearLayoutの変更方法を参照 verticalの場合 「垂直方向」 horizontalの場合 「水平方向」 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 186

×