サポート
ダウンロード
本書のサンプルソースがダウンロードできます。 br>
次のファイルをダウンロードして解凍してください。
- ダウンロード(バージョン1.1対応)
- gihyo-sample-1_1.zip(約7.7MB,2015年2月24日更新)
Android Studio 1.1が,2015年2月18日にリリースされました。
これからAndroid Studio 1.1をお使いの方は,こちらをダウンロードください。
- ダウンロード(バージョン1.0対応)
- gihyo-sample-1_0-2.zip(約11.5MB,2014年12月22日更新)
Android Studio 1.0が,2014年12月9日にリリースされました。
これからAndroid Studio 1.0をお使いの方は,こちらをダウンロードください。
なお,Android Studio 1.0からActivity名,Layout名には「My」から「Main」が付加されるように変更となりました。本書の該当部分も読み替えてください。
以前のバージョン(0.8.14 beta)をお使いの方は,下記の「gihyo-sample-0_8_14-2.zip」をダウンロードください。
- ダウンロード(0.8.14 beta)
- gihyo-sample-0_8_14-2.zip(約11.3MB,2014年12月22日更新)
各Chapterで追加する画像素材を,各Chapterのimagesフォルダに入れるようにしました。
なお,解凍してできたフォルダ群は,本書の各Chapterに対応しています。
- Chp5_HelloAndroid
- Chp6_WeatherForecasts
- Chp7_Action
- Chp8_Shooting
- Chp9_Labyrinth
補足情報
Android Studioのインストールについて
「Android Studio」は,本書の刊行時点(2014年11月)では,ベータ版であり,短期間でのバージョンアップを繰り返しています。
そのため,本書「Chapter 2:Android Studioをインストールしよう」の記述どおりにインストールを進めても,関連ファイルが探しづらい場合や完了できない場合などがあります。
次のサイトに本書著者の有山圭二氏により,最新バージョンでのインストール方法がまとめられておりますので,ご参照ください。
正誤表
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
(2015年5月13日更新)
P.77 リスト6-2の下から13行目
誤 |
new InputStreamReader(response.getEntity().getContent())
|
正 |
new InputStreamReader(response.getEntity().getContent()));
|
P.78 「取得した天気情報を表示する」項の1行目とリスト6-3のキャプション
P.99 リスト6-14の15行目
ImageLoaderTaskのクラス宣言部の書き換えに関する記述が抜け落ちていました。
- public class ImageLoaderTask {
+ public class ImageLoaderTask extends AsyncTask {
|
※「-」が削除する行,「+」は追加する行
P.105 リスト6-17の作業以前
WeatherForecast.javaのTemperatureクラスにtoStringメソッドを追加する記述が抜け落ちていました。
public class Temperature {
+ @Override
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+
+ // 最低気温 / 最高気温
+ if (min.celsius != null) {
+ sb.append(min.celsius);
+ } else {
+ sb.append(" - ");
+ }
+ sb.append("℃ / ");
+
+ if (max.celsius != null) {
+ sb.append(max.celsius);
+ } else {
+ sb.append(" - ");
+ }
+ sb.append("℃");
+
+ return sb.toString();
+ }
}
|
※「+」は追加する行
P.105 リスト6-17の36-37行目
誤 |
for (WeatherApi.WeatherForecast.Forecast forecast : data.forecastList ) {
|
正 |
for (WeatherForecast.Forecast forecast : data.forecastList ) {
|
P.109 「6-9 「取り込み中」を表示する」節の5行目とリスト6-20のキャプション
P.110 リスト6-21
onCreateメソッドの@Overrideの直前には「//省略」が入り,onCreateメソッドは,GetWeatherForecastTaskクラスと同じインデントになります。
P.114 リスト6-27の3~19行目
先頭の「+」は不要です
P.150 リスト7-12の下から15行目
誤 |
private void jumpDroid(float power) {
|
正 |
private void jumpDroid() {
|
P.159 下から1行目
誤 |
GameOver.java
|
正 |
GameView.java
|
P.186 リスト8-7の7行目
定数MISSILE_LAUNCH_WEIGHTの記述が追加となっていますが,リスト8-2で追加しているので,ここでの追加は必要ありません。
P.188 リスト8-8の21行目
P.189 リスト8-8の下から1~18行目
変数widthとheightの行に変更(削除と追加)が指定されていますが,リスト8-2で変更しているの,ここでの追加は必要ありません。ここでは次の箇所を変更します。
@Override
- protected void onDraw(Canvas canvas) {
+ private void drawObject(Canvas canvas) {
- super.onDraw(canvas);
int width = canvas.getWidth();
int height = canvas.getHeight();
+ canvas.drawColor(Color.WHITE);
// 省略
droid.draw(canvas);
- invalidate();
}
}
|
※「-」が削除する行,「+」は追加する行
P.194 リスト8-11
BaseObjectクラスのisAvailableメソッド内への追加に関する記述が抜け落ちていました。
public boolean isAvailable(int width, int height) {
if (yPosition < 0 || xPosition < 0 || yPosition > height || xPosition > width) {
return false;
}
+ if (status == STATUS_DESTROYED) {
+ return false;
+ }
return true;
}
|
※「+」は追加する行
P.211 バージョンとAPI Levelの対照表
P.255 リスト9-27
LabyrinthView.javaに変数とsetSeedメソッドを追加する記述が抜け落ちていました。
+ private int seed;
+ public void setSeed(int seed) {
+ this.seed = seed;
+ }
|
※「+」は追加する行