Android本の写経メモ(CHAPTER2:基本API、CHAPTER3:ユーザーインタフェース)
CHAPTER2からは、manifest.xmlについての記述がありませんでしたし、CHAPTER1と同じだからいいよね?ていう話もなかったので迷いました。
何だか急に突き放された気分です。
さて、2-2からお絵描きが始まったんですが、ごくごく初歩的な疑問がわいてきました。
「座標の位置は画面サイズによって変わる?」
答えが本にはなかったので、隣で一緒に勉強している知人のURBANO(京セラ)とわたしのNexus5を並べてみました。
左がURBANO、右がNexus5。両方とも5インチディスプレイで、上の画像は幅をそろえてあります。なので、Nexus5のバーチャルボタン(?)の分を差し引いても、図形の大きさが違いますね。
というわけで、AndroidのCanvasでお絵描きをするときは、機種依存だということがわかりました。
ちなみに、GDG京都のAndroid勉強会でもお世話になってる方が、Canvasについて記事を書かれてたのを見つけたので、貼っておきます。
AndroidのCanvasを使いこなす! – 基本的な描画 | NET BIZ DIV. TECH BLOG
AndroidのCanvasを使いこなす! – PorterDuff | NET BIZ DIV. TECH BLOG
2-4
キーイベントは、Nexus5に物理ボタンがないので動きませんでした。隣のURBANOは動いてたので、大丈夫そうです。
2-7
SuerfaceViewは、自分で用意したサンプル画像が白くて、背景も白かったので、背景を変えられないものかとちょっと調べてみました。
SurfaceViewの罠?(笑) | 車輪の再発見みたいな?
Androyer in Japan: SurfaceViewの留意点
Androidで動く携帯Javaアプリ作成入門(12):SurfaceViewならAndroidで高速描画ゲームが作れる (1/3) - @IT
SurfaceViewてちょっと特殊なんですね。これらの記事がちょっと古いというのと、内容をうまく反映させられなくて、まだできてません・・・。本の写経を先に進ませたいので、リファレンスも読みながらまた気が向いたらやり直します。
さて、CHAPTER3から、Android Studioのバージョンを1.2.1.1へ変更しました。
そのせいか、デフォルトで作られるコードが微妙に違う部分があったりするのですが、デフォルト部分には手を触れず、本に書いてあるとおりの指示だけすれば今のところ問題ありません。 詰まったときはブログで紹介したいと思います。
そして、この章から、manifest.xmlへの追記が必要だったりするのですが、それがCHAPTERの最後に書いてあったりするので気づかずに実行して動かない!とかありました。
そのへんは、ちょっと親切じゃないと思います。
3-6
Google Developers ConsoleのUIが変わってますね。だいたいこの辺という感じで、本の指示を実行していけば問題なかったので、詳細は省略します。
1つだけ、APIキーを作るときのフィンガープリントのセミコロンの後ろにつけるパッケージ名は、ちゃんと自分で作ったパッケージ名にしましょう。理屈がわかると当たり前なのですが、「パッケージ名」というのがピント来なかったので、例に書いてあるとおりにしていて、動きませんでした。
「パッケージ名」は、MapViewEx.javaの1行名、本のコードでいうと、"net.npaka.mapex"がそれです。超初心者は、そういうところでもつまづいたりするんですよ・・・。
ちなみに、API有効操作をしなかったらこんなlog出ました。単純に、本の手順をひとつ飛ばしたミスだったんですけど、参考まで。
E/MDM﹕ [150] b.run: Couldn't connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null}
このとき、エラーメッセージを読むのは避けて通れない道だと思って、がんばってAndroid Studioのlogと向き合ってみました。このおかげで、log読む壁は越えたと思います。(^ ^)