Home > android > AroundHereをAndroid-SDK 0.9betaに対応しました

AroundHereをAndroid-SDK 0.9betaに対応しました

雑誌にも掲載して頂いたAroundHereをAndroid-SDK 0.9betaに対応しました。

AroundHereとは

現在地周辺の飲食店をホットペッパーやぐるなびから調べて表示するアプリです。

周辺の飲食店を取得します

menuを開いて「ホットペッパー」「ぐるなび」を選択し、周辺の飲食店を取得します。

menuを開くのは中心のgoody君をタップしても開けます。

ポイントを選択

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

イメージの表示

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

お店情報を表示

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

実装

今までのAroundHereの実装をほぼ全て捨てて、新規に作り直しました。
「EasyMap」というmap系ライブラリを作って、それをベースに作り直しました。
#EasyMapは近々公開予定です。

メニューをプログラマブルに開く

goodyクンをタップしてメニューを開く時に使っています。

Activity#openOptionsMenu();

goodyクンをタップしたイベントが発行されると、このメソッドでメニューを開いています。
このイベントはEasyMapの1機能です。

ちょっとだけEasyMapの宣伝

EasyMapはMapViewの任意の場所に任意のViewを簡単に設置できるライブラリです。
基本(かつ最も重要)となるのは以下の2つのクラスです。

  • EasyMapView
  • ViewItem
EasyMapView

EasyMapViewはMapViewのサブクラスです。
使い方はMapViewと同じです。

EasyMapView easyMapView = new EasyMapView(this, API_KEY);
ViewItem

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から画像を取ってきて画面の真ん中に表示するのですが、その画像読み込みが終了する前に実行を進めてしまっていたための例外でした。

Comment Form
Remember personal info

*
To prove that you're not a bot, enter this code
Anti-Spam Image

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

Home > android > AroundHereをAndroid-SDK 0.9betaに対応しました

Twitter
Search
Feeds
Meta

Return to page top