2011年9月13日火曜日

[Android]ジェスチャー操作を検知するメモ

Androidでジェスチャー操作を検知する方法です。

GestureDetectorを使います。

シングル/ロングタップ、フリック、スクロールなどを検知できる。

onTouchEventを実装していた場合、
GestureDetectorにイベントを渡してあげないと検知できない。
true返却しないと、ジェスチャー検知できない。


  @Override
  public boolean onTouchEvent(MotionEvent event) {
      boolean b = mDetector.onTouchEvent(event);
          return true;
  }


GestureListenerはこんな感じ。
  public class GestureListener extends SimpleOnGestureListener implements OnGestureListener {
  @Override
  public boolean onDoubleTap(MotionEvent e) {
  super.onDoubleTap(e);
  }
 
  @Override
  public void onLongPress(MotionEvent e) {
  super.onLongPress(e);
  }
 
  }

ほかにもonScroll、onFlingとかある。

以上、メモおわり。

[Android]サービス起動メモ

Androidでサービスを起動する方法は2つ。

1.bindService()
2.startService()

1はアクティビティと接続した状態でサービスを起動する。
アクティビティがサービスを制御できる。
アクティビティ終了時にサービスも終了する。

2はアクティビティとサービスが別々に動作する。
アクティビティはサービスを制御できない。
アクティビティ終了後もサービスは生きている。

それぞれ終了する方法は、
1.unbindService()
2.stopService()

サービスとアクティビティでやり取りする方法は、intent-filter使ったりする。
ほかにも方法ある。

以上、メモ終わり。

2011年8月24日水曜日

AndroidのSQLite高速化

旅宿アプリで使っているDBの登録処理が長かったので、
SQLiteの高速化処理について調べてみました。

高速化の方法はTransaction処理を明示的に行うこと。
今回は複数行を1行ずつDBに登録していました。

トランザクション処理を記述する前は、
400行のデータの登録するのに40秒かかっていました。

トランザクション処理を記述後は、5秒で完了しました。

ソースはこんな感じです。

               try {

        database.beginTransaction();  // ①
   
    for(Data data : list) {
    // DBに登録
    database.insert(data);  // ②
    }
           database.setTransactionSuccessful();    // ③
    } finally {
    database.endTransaction();  // ④
    }

①・・・トランザクションを開始
②・・・DBに挿入
③・・・コミット
④・・・トランザクション終了



参照元
http://www.atmarkit.co.jp/fsmart/articles/android06/android06_2.html

2011年8月13日土曜日

AIDMA noteを改善するの巻 - その2 -

前回は、MENUのアイコンを変えてみました。
AIDMA noteを改善するの巻 - その1 -

before


after

そうは言ってもまだまだダサいです。
何がいけないんでしょう?

そうです、
画面背景が黒で、文字色が白という初期状態のまんまなのです。

という訳で画像を用意して、背景に設定します。

設定する方法は、
画面のlayoutにandroid:background="@drawable/background"のように設定するだけ。




修正前よりはよくなったかな。

AIDMA noteを改善するの巻 - その1 -

こんにちは。

Androidの勉強を始めて、早5ヶ月。

リリースしたアプリは、4つ。


第一弾:AIDMA note

第二弾:ScreenLockGesture

第三弾:ヤッテミッション

第四弾:旅宿(たびやど)

こう並べてみると、AIDMA noteがとても残念なデザインです。。

トップ画面と登録画面のたった2画面ですが、残念なところ満載なので、改善していきます。

その1:MENUのアイコンがダサい。

アイコンは自分で用意しないといけないと思っていたので、
センスのないアイコンを自作して表示させてしまっている。


赤い四角で囲んでいる部分です。
res/drawableに自分で作成した画像を登録、参照しています。

ここをAndroid標準のアイコン画像に変えて、統一感を出したいと思います。

方法1.
sdkフォルダ配下のplatforms/android-xx/data/resからアイコンを探してきて、
res/drawableを差し替える。


方法2.
Android標準のアイコンを直接参照する。
1.res/drawableのアイコンが入らないので、削除します。
2.setIconで指定する方法を以下のようにします。
setIcon(R.drawable.disk)
setIcon(R.drawable.mail)
setIcon(R.drawable.clear)


setIcon(android.R.drawable.ic_menu_save)
setIcon(android.R.drawable.ic_menu_send)
setIcon(android.R.drawable.ic_menu_close_clear_cancel)


修正後はこんな感じです。

メインの画面がイケテないので、アレですが、MENU部分はマシになりました。

android.R.drawable.xxxxxで指定できるアイコンは、
sdkフォルダ配下のplatforms/android-xx/data/resにあるので、そちらを参照してみてください。

この方法を使うと、
アプリのサイズが小さくなるので、特に理由がない場合は使った方が良いですよ。


自分でアイコンを作成する場合は、
ガイドラインがあるのでそちらを参照すると、恥ずかしい思いはしなくて済むのかも。


追記:

> android.R.drawable.xxxxxで指定できるアイコンは、
> sdkフォルダ配下のplatforms/android-xx/data/resにあるので、そちらを参照してみてください。
android.R.drawable.xxxxxの指定方法は端末 / バージョンによって異なるので、非推奨とのこと。
sdkフォルダ配下のplatforms/android-xx/data/resを使う場合は、コピーして使ってください。

2011年8月6日土曜日

「旅宿(たびやど)」をリリースしました。

楽天トラベルのアプリコンテスト用にAndroidアプリを作りました。

[楽天トラベルスマートフォンコンテスト 2011]

エントリー期間は7/31までだったけど、ぎりぎりエントリー完了。
結果発表は11月末までとあと3ヶ月あるので忘れよう。。


アプリはこんな感じです。
・キーワード検索
・エリア検索
・履歴・お気に入り表示
・スポット検索
・ホテル比較表示


トップメニュー

キーワード検索

エリア検索

スポット検索

日本の世界遺産一覧

ホテルの詳細(基本情報)


ホテルの詳細(詳細情報)

ホテルの詳細(レビュー)

ホテルの一覧

一覧の並び替え

ホテルの比較


作っている途中で気が付いたけど、
API使って動かすのがおもしろくて、テーマに沿っていないんでないかと・・・。

テーマ「日本を元気にする面白いアプリ」


とりあえず、いまできる精一杯の作品です。2,3週間でよく頑張った、自分。
アプリの感想・要望はコメントに残して頂けると嬉しいです。

2011年7月11日月曜日

ヤッテミッションをリリースしました!

一ヶ月ぶりの更新です。すみません。

ここ最近何をしていたかというと、
Catus Apps.さんと一緒に「Evernote デベロッパー コンペティション」に応募する作品を作ってました。

で、作った作品がコレ!

Androidアプリ「ヤッテミッション(The Mission)」。
※詳しくは、Cactus Apps.さんのブログを見てね。→http://cactusapps.blogspot.com/2011/07/blog-post.html


「普段やらないけど、
簡単にできるミッションに挑戦して、新しい発見ができたらいいよね」
がコンセプトのアプリです。

最近マンネリ気味な人、
なんだか自信をなくしてる人、
アイデアに困った人、
ちょっとした刺激が欲しい人、
今のあなたをちょっとだけ成長させてくれるかも?


ご意見・ご感想はCactus Apps.さん、または、コメント残していただけると嬉しいです。