Android公式サイトのトレーニング「 Adding the Action Bar」をAndroid Studioしてみた

Android公式サイトのトレーニング「Building Your First App」をAndroid Studioしてみた
につづき「Adding the Action Bar」をAndroid Studioしてみました
http://developer.android.com/intl/ja/training/appbar/index.html

「Building Your First App」ではそのままアプリができましたが、今回はそのままできるようにはなってないようです
Android Studio 0.8.9 でやったときの差とコメントを書いていきます
※ 後半、めんどうだったので省略してます

Adding the Action Bar
Action Barの説明

Setting Up the Action Bar
-> Support Android 3.0 and Above Only
<uses-sdk .. はbuild.gradleにある

-> Support Android 2.1 and Above
対応予定がないので、今回は飛ばした

Adding Action Buttons
Action Buttonsの説明

-> Specify the Actions in XML
プロジェクト作成時にBlank Activityを選ぶと、デフォルトではmenu/my.xmlがAction Barの設定になる
英語でroomは、使える場所、余地

@drawable/ic_action_search がないため追加する
resフォルダを右クリック、New、Image Asset
(Android Studioをインストールしたディレクトリ) /sdk/platforms/android-19/data/res/drawable-ldpi/ic_search_category_default.png
を選択、Resource Nameをつけて追加

-> Add the Actions to the Action Bar
Android Studioではデフォルトの
[java]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.my, menu);
return true;
}
[/java]
で動作する

-> Respond to Action Buttons
Action Buttonをタップすると、onOptionsItemSelected()が呼ばれ、IDで区別して動作を作成する

-> Add Up Button for Low-level Activities
API level 16以上だと戻るボタンの実装は簡単でManifest.xmlに親のアクティビティを指定するだけでいい

Styling the Actin Bar
Androids’s style and themeを使えば、action barのスタイルがかえられる

-> Use an Android Theme
android:themeは<application>や<activity>ごとにつけられる

-> Customize the Background
For Android 2.1 and higher
は飛ばしました

res/values/themes.xmlでなくres/values/styles.xmlを参照
drawableで色をしているがファイルがない(自分でつくる?)

CustomizeActionBarThemeがPreviewウィンドウで反映されない?
と思いましたが、Emulatorで動かすと効いてました
Preview画面では上部のThemeをCustomizeActionBarThemeに変更すると反映されます

-> Customize the Text Color
android:titleTextStyleでAction Barのスタイル指定
android:actionBarTabTextStyleでActionBarTabのスタイル指定
android:actionMenuTextColorでAction Barのテキストカラー

MyActionBarTitleText、actionBarTabTextStyleでActionBarTab内の
TextColorを設定するとそちらが有効になる(actionMenuTextColorよりも)

-> Customize the Tab Indicator
drawableのものが色々足りない
ページ上部のYou should also readのところの
Android Action Bar Style Generator
でダウンロードして持ってこれる

名前つけずにダウンロードすると同じファイル名になる
unzipして、プロジェクトのresディレクトリに放り込む

Tab Indicatorを作るのが面倒だったので、省略..

Overlaying the Action Bar
hide()やshow()でAction Barを隠したり出したりできるが再描画が走るので効率がよくない
overlay modeで解決できる

-> Enable Overlay Mode
–> For Android 3.0 and higher only
android:windowActionBarOverlayをtrueに指定すればoverlay mode

–> For Android 2.1 and higher
飛ばしました

-> Specify Layout Top-Margin
overlay modeのとき、Action Barのしたに常にlayoutを出すならマージンを指定
android:paddingTop=”?android:attr/actionBarSize”

ドットインストールを使ってAndroidアプリ開発をしてみた

ドットインストールのAndroidアプリの講座をみてみました
まだあんまりないAndroid Studioでのサンプルで助かりました
覚えられることと、ポイントをメモします

ドットインストールの有料会員しか見れないものがほとんどです

Androidアプリ開発入門

http://dotinstall.com/lessons/basic_android
(覚えられること)
開発環境の構築
ログの出し方
クリックイベントの書き方

Androidレイアウト入門

http://dotinstall.com/lessons/basic_android_layout
(覚えられること)
LinearLayout
RelativeLayout
FrameLayout

(ポイント)
fill_parent/match_parent、で親要素めいいっぱいに広がる
match_content、で内容の大きさで広がる
gravity/layout_gravity、で位置を変更
layout_weight、でオブジェクトの大きさを比率で設定

Androidでおみくじアプリを作ろう

http://dotinstall.com/lessons/omikuji_android/
(覚えられること)
RelativeLayoutの画面の作り方
プログラムの書き方

(ポイント)
R.layout.activity_my
はresディレクトリ>layout>activity_my.xmlの参照

アクションバーを消す
AndroidManifest.xml
android:theme=”@android:style/Theme.Holo.Light.NoActionBar

Androidで姓名診断アプリを作ろう

http://dotinstall.com/lessons/namescore_android
(覚えられること)
2つ目の画面の作り方、データの渡し方
入力値のチェック、画面へアラートを出す

(ポイント)
EditText.setErrorでEditTextに警告が出せる
Toast.makeTextで下のほうに出る警告が出せる
AlertDialog、AlertDialog.Builderでポップアップの警告が出せる
Intentをつかって、違う画面を呼び出せる

Androidでストップウォッチを作ろう

http://dotinstall.com/lessons/stopwatch_android
(覚えられること)
時刻の差の取り方
Timerによる画面の値の更新

(ポイント)
SystemClockで時計の値がとれる
Timerで定期的に実行できる
画面の値の更新はシングルスレッドでする必要があるためHandlerで行う
SimpleDateFormatで時刻表示のフォーマットをする

Androidでウェブブラウザを作ろう

http://dotinstall.com/lessons/browser_android
(覚えられること)
ウェブブラウザがAndroidアプリ内で動かせる
メニューの増やし方
タイトルバーの文字の変更

(ポイント)
WebViewを使ってウェブブラウザを実装できる
インターネット通信をする許可をManifestファイルに書く
 
デフォルトではJavascriptが無効になる

Androidリストビュー入門

http://dotinstall.com/lessons/basic_android_listview
(覚えられること)
ListViewの使い方
ArrayListの使い方(動的配列)
HashMapの使い方(動的配列)
Classの作成
ViewHolderクラスをつくって、処理の高速化
setTag、getTagの使い方

(ポイント)
ListViewでwrap_contentは動作が重いため、match_parentに
ViewとのやりとりはAdapterでおこなう
setOnItemClickListnerでクリックイベントを設置
setEmptyViewでデータがないときのView
HashMapはSimpleAdapterを使う
BitmapFactory.decodeResourceでBitmapをセット
独自クラスのAdapterは独自Adapterでする
ViewLaout は画面に表示するぶんのViewだけ用意、スクロールすると画面からでたViewを再利用してViewを表示する
(最初から画面からはみでたViewは用意しない)

Androidでクイズアプリを作ろう

http://dotinstall.com/lessons/basic_android_listview
(覚えられること)
テキストファイルの読み込み
デバッガの使い方
画面の追加の仕方

(ポイント)
Intentで画面を呼び出す
startActivity(intent)で次の画面が起動
android:launchMode=”singleTask”で次の画面を起動しても一つの画面
元のActivityの戻るとonNewIntent()が呼ばれる

Android公式サイトのトレーニング「Building Your First App」をAndroid Studioしてみた

developer.android.comのTraining、Building Your First Appをしてみました
http://developer.android.com/training/basics/firstapp/index.html
Eclipseとコマンドラインで進められています
Android Studio でやったので、異なる点をあったのでメモします

Ubuntu 12.04でAndroid Studio 0.8.9でやりました
模索しながらやったのですが、もっと良いやり方がある気がしています

Building Your First App
JDKだの環境構築の説明

-> Creating an Android Project
設定画面が違います

ここまでの代わりにドットインストールのAndroidアプリ開発入門がわかりやすくていいと思います
http://dotinstall.com/lessons/basic_android
(次で出てくるAVDの作り方もこちらで)

こちらも参考に
UbuntuのJavaを入れ直してみた
UbuntuにAndroid Studioをインストールしてみる

-> Running Your App
sdkのバージョン指定は、AndroidManifest.xmlでなく build.gradleに書かれています

–> Run on a Real Device
こちらを参考に
UbuntuにAndroid端末をUSB接続で認識させる

–> Run on the Emulator
スペック低めのUbuntuマシンでやってて、面倒だったのでやりませんでした

Building a Simple User Interface
Viewの説明

-> Create a Linear Layout
Linear Layoutの説明
fragment_main.xmlがありません
代わりにactivity_my.xmlを修正しました(Blank Layoutを作ってできたlayout/内のxml)

-> Add a Text Field
EditTextを設置します
@はXMLからresource objectを参照するときにつける(違うXMLの値を見るとか)
+ははじめてつけるresource IDにつける
※ resource objectの説明はこの章を読み直す

-> Add String Resources
文字列をstrings.xmlに書いて分けておくことで多言語対応などやりやすいらしい

-> Add a Button
ボタン追加
幅、高さにwrap_contentとしておくと中の文字に合わせた大きさになる

-> Make the Input Box Fill in the Screen Width
テキストボックスとボタンの大きさを割合で表示
layout_weightは最初0
layout_weightを0より大きくすると、割合で大きさがいっぱいへ広がる
(1,0とすると1のものがあまったスペース分広がり、1,1とすると半々になる)

実行はEclipseと同じような実行ボタン(shift+F10)
ここまでで、画面一枚のアプリできあがり

Starting Another Activity
2つ目の画面の追加とデータの渡し方

-> Respond to the Send Button
ボタンのクリック処理をつくります

fragment.xmlはないので、activity_my.xml
javaのファイルは、srcディレクトリでなく、src/main/java/(プロジェクト名)ディレクトリ

-> Build an Intent
Intentというオブジェクトが2つのコンポーネント間のやりとりをしてくれます
importしてないclassの自動import記載は、ALT+Enterでできます

Intentの説明はここを読み直す

-> Create the Second Activity
Activityの追加は、File>New>Activity
画面が違います
PlaceholderFragmentはできてない
onCreateメソッドがActivityのインスタンスを作成する

–> Add the title string
タイトル文字列の用意
Android Studioでも自動でしてくれます

–> Add it to the manifest
android:parentActivityNameに親のActivityを指定すると前の画面へ戻るナビゲーションを自動で用意してくれる

-> Receive the Intent
getIntentでIntentが受け取れ、セットしてた文字列がとれる

-> Display the Message
前の画面で渡した文字列を表示する
TextViewをコードだけで生成し、layoutへ表示させる
setContentView(textView)でlayoutへ表示

これで簡単な2画面アプリができました

UbuntuにAndroid Studioをインストールしてみる

Andoridアプリを作ってみよう、ということで
統合開発環境のAndroid Studioをインストールしてみます

Ubuntu 12.04で入れました

Linuxの場合
Oracle Java Development Kit (JDK) 6 or JDK 7
が必要なので入れておきます(現時点の最新は8)
参考)UbuntuのJavaを入れ直してみた

Android Studioをダウンロード
https://developer.android.com/sdk/installing/studio.html#download

インストールしたいディレクトリに移動しておいて
# tar xvzf android-studio-bundle-135.1339820-linux.tgz

必要であれば、ログインユーザーで実行できるよう権限つけておきます
# sudo chown -R user android-studio
などとして

bin/studio.shをたたけば起動します
どこでも起動できるように.bashrcにPATHを追記しておきます

# vim ~/.bashrc
(追記) export PATH=”/(Android Studioをいれたディレクトリ)/bin:$PATH”

設定反映させて
# source ~/.bashrc

起動
# studio.sh

初回は設定を読み込むか聞かれますが、今回は取り込まず次へ
android-studio-install

起動中
android-studio-install2

初回はjdkの場所を聞かれるので、指定して
android-studio-install3

起動するとアップデートがあると言われてるので、一番下のcheckをクリック
android-studio-install4

Update and Restartをクリックすれば、最新になります
android-studio-install5

少し必要な設定をします
Configureをクリック
android-studio-install6

SDK Managerをクリック
android-studio-install7

必要なSDKをインストールしておきます
最新のSDKと、持ってる端末のバージョンのSDKでいいと思います
結構、容量があるので注意です

Android SDK Build-tools
SDK Platform
が必須です

AVDなどエミュレーターを使う際は、System Imageが必要です
実機をUSBでつないで動かすので入れませんでした

Android端末との設定はこちらを参考に
UbuntuにAndroid端末をUSB接続で認識させる

これでAndroidアプリ開発の準備ができました