- 2008-09-06 1:08
- android
雑誌にも掲載して頂いたAroundHereをAndroid-SDK 0.9betaに対応しました。
現在地周辺の飲食店をホットペッパーやぐるなびから調べて表示するアプリです。
menuを開いて「ホットペッパー」「ぐるなび」を選択し、周辺の飲食店を取得します。

menuを開くのは中心のgoody君をタップしても開けます。
周辺の飲食店がロードされると、その場所にポイントが表示されます。
それをタップすると、タップされた事が明確に分かるようにプニョっとアニメーションします。

ポイントをタップし続けると、お店のイメージ画像が表示されます。

ポイントをそのままタップし続けると、お店の情報が表示されます。

今までのAroundHereの実装をほぼ全て捨てて、新規に作り直しました。
「EasyMap」というmap系ライブラリを作って、それをベースに作り直しました。
#EasyMapは近々公開予定です。
goodyクンをタップしてメニューを開く時に使っています。
Activity#openOptionsMenu();
goodyクンをタップしたイベントが発行されると、このメソッドでメニューを開いています。
このイベントはEasyMapの1機能です。
EasyMapはMapViewの任意の場所に任意のViewを簡単に設置できるライブラリです。
基本(かつ最も重要)となるのは以下の2つのクラスです。
- EasyMapView
- ViewItem
EasyMapViewはMapViewのサブクラスです。
使い方はMapViewと同じです。
EasyMapView easyMapView = new EasyMapView(this, API_KEY);
ViewItemはViewとGeoPoint(Point)をインスタンスフィールドに持つクラスです。
GeoPointを設定すれば、その緯度経度にViewを設置できます。
View view = new View(...); //なんらかのView GeoPoint geopoint = new GeoPoint(lat, lng); //緯度経度ポイント // ViewとGeoPointからViewItemを作る ViewItem viewItem = new ViewItem(view, geopoint, null, null); easyMapView.addViewItem(viewItem); //ViewItemを追加するだけ
これを使って周辺のお店ポイントを地図上に表示しています。
Pointを設定すれば、画面上のその場所にViewを設置できます。
View view = new View(...);//なんらかのView Point point = new Point(x, y); //表示位置 // ViewとPointからViewItemを作る ViewItem viewItem = new ViewItem(view, point, null, null); easyMapView.addViewItem(viewItem);
これを使ってgoodyクンの画像や、お店のイメージ画像を表示しています。
EasyMapはできるだけ簡単に使えるよう設計しています。
いつものようにeclipseのプロジェクトを公開しますので、自由にご利用下さい。
draw_navi_0.9b.zip
draw_navi_0.9b1.zip(バグ修正しました@9th Sep. 2008)
#このソース内にeasymap.jarが含まれています。
#自由にご利用頂いてOKですが、バージョンアップに伴う互換性は保証出来ません。悪しからず。
今までのArounHereでアイコン表示していたのは、Overlay#draw();を使っていました。
それに対してEasyMapはこの実装を捨てました。
drawを使えば画像を簡単に軽量に表示できます。
しかし、アニメーションを設定することやEditableなTextの設置が容易ではありません。
それらの設置がプログラマにとって簡単なのはViewだろうと思い、
EasyMapではViewをMapView上に設置する実装にしました。
EasyMapをテストする意味でAroundHereを再実装しましたが、使い方はそれほど難しくないと思いました。
制作者なので感覚がマヒしているかもしれませんが…(汗)
Comments:2
- androidzaurus 08-09-09 (火) 17:29
-
Zaurusで動かしてみました。地図とGoodie君の表示およびアニメーションはOKなのですが、ぐるなび or ホットペッパーを選択すると
The application AroundHere (process com.adamrocker …. ) has stopped unexpectedly. Please try again.
といわれちゃいます。Exception BrowserにはAroundHereからの例外はありませんでした。バイナリをコピーするだけではダメかしら。 - adamrocker 08-09-09 (火) 23:39
-
>androidzaurusさん
おぉ有り難うございます!Zaurusでも滑らかにアニメーションできましたか?
バグの件について、修正してみました。本エントリにてアップデート済みです。バグは、Webから画像を取ってきて画面の真ん中に表示するのですが、その画像読み込みが終了する前に実行を進めてしまっていたための例外でした。
Trackbacks:0
- Trackback URL for this entry
- http://www.adamrocker.com/blog/224/aroundhere_for_android_sdk_09beta.html/trackback/
- Listed below are links to weblogs that reference
- AroundHereをAndroid-SDK 0.9betaに対応しました from throw Life
