Hatena::ブログ(Diary)

明日の鍵

2012-02-10

乗換案内を検索するアプリを作ったよ

f:id:tomorrowkey:20120210123528p:image:h400

簡単に使える乗換案内アプリを作りました。


毎回駅名を入力して、検索をするなんてめんどうです。

いつも使うルートを予め登録しておけば、あとは選択するだけで

今の時間で検索してくれます


検索結果をわざわざ保存なんてめんどうです。

検索したら自動的に保存してくれます

ダウンロード

https://market.android.com/details?id=jp.tomorrowkey.android.transitguide

サイト

Androidアプリ 乗換案内

https://sites.google.com/site/androidtrainguide/

その他スクリーンショット

f:id:tomorrowkey:20120210123529p:image:h400

f:id:tomorrowkey:20120210123531p:image:h400

f:id:tomorrowkey:20120210123530p:image:h400

2012-02-01

Javaの正規表現をテストするサイトを作ったよ

f:id:tomorrowkey:20120201225135p:image

作った

Java regex tester 
http://java-regex-tester.appspot.com/

Javaの正規表現を評価するサイトを作ったよ。


使ったライブラリとか

Slim3

https://sites.google.com/site/slim3appengine/

GAEだとslim3一択

jQuery: The Write Less, Do More, JavaScript Library

http://jquery.com/

jQueryないとjavascriptがめんどい

zClip :: jQuery ZeroClipboard

http://www.steamdev.com/zclip/

クリップボードにコピーするためのjQueryプラグイン

Adventures in Programming » Blog Archive » Toast Notifications Using jQuery

http://shawntabai.com/wp/2011/09/06/toast-notifications-using-jquery/

AndroidのToastライクな表示をするためのコード

Google Web Fonts

http://www.google.com/webfonts

Gudeaというフォントを使いました。

チェックボックスをつけて、コードをコピーするだけなんでとても簡単です。

見た目

がんばってCSS書いたけど、Bootstrap使ってかっこよくしたいなー。

あー、faviconださい。

あとは脱GAEしたい。

更新しました

  • 正規表現エラーだった場合にレスポンスが帰ってこない不具合を直しました
  • Bootstrap使いました
  • Matchesも表示するようにしました
  • Groupのハイライトを色分けしました

2012-02-05 20:45 追記

更新しました

  • Findがすべて抽出されないバグを修正しました

2012-02-07 08:49 追記

ソースを公開しました

tomorrowkey/RegularExpressionTester - GitHub 
https://github.com/tomorrowkey/RegularExpressionTester

いい加減ライセンスの表記をちゃんとしないとなー

2012-02-09 08:40 追記

2012-01-26

2012年

いまさら今年の抱負でも書く

去年の反省から

  • あんまりものづくりしてなかった。
  • 遊んでばかりだった。
  • どれだけお金があるのか把握してなかった。
  • 経費で落とせそうなヤツは領収書もらう癖ができた。
  • 部屋の片付けできた。
  • 貯金できた。
  • バイク買った。
  • 実家帰れた。

今年の抱負

  • ものづくりがんばる
  • Androidアプリ以外もやる
  • 毎月どれくらいの収支あるのか把握しておきたい
  • フルマラソン完走
  • Google I/Oいく
  • 名古屋いく
  • 福岡いく
  • モグ屋いく

#

すでに1月2月で遊んでばかりなんだけど、冬はしょうがない!

春から本気出す

2011-12-03

RealViewSwitcherを作りました

Android Advent Calendar

このエントリはAndroid Advent Calendarのエントリの1つです。

クリスマスまでに1日1記事更新されるので、ぜひご覧になってください。

Android Advent Calendar http://androidadvent.blogspot.com/

RealViewSwitcherを作りました

Launcherアプリのように、1ページごとに切り替わるViewGroupを作りました。

すでにcompatibility packageでViewPagerが公開されていますが

これを作った当時は、まだcompatibility packageがありませんでした。

RealViewSwitcherというViewGroupです。

"RealViewSwitcher"で検索すると同じようなクラスがでてきますが、私に命名センスがないので名前だけ拝借しました。

すでにデコ美シンプルQRコードインプリされています。

動画

D

3つページがあり、ぐるぐる循環します。


D

もちろんフリックする以外にコントロールを追加することが可能です。


D

ばいーんの挙動を変更することも可能です。

簡単な使い方

コードから動的にViewの追加も可能ですが、xmlにも記述できます。

通常の独自Viewと同じやり方です。

<?xml version="1.0" encoding="utf-8"?>
<view xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res/jp.tomorrowkey.android.realviewswitchersample"
  android:id="@+id/viewSwitcher"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  class="jp.tomorrowkey.android.realviewswitcher.widget.RealViewSwitcher"
  app:interpolator="overshoot_interpolator" >

  <TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color1"
    android:gravity="center"
    android:text="1"
    android:textSize="64sp" />

  <TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color2"
    android:gravity="center"
    android:text="2"
    android:textSize="64sp" />

  <TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color3"
    android:gravity="center"
    android:text="3"
    android:textSize="64sp" />
</view>

ばいーんの挙動を変更したい場合に限り、

xmlns:app="http://schemas.android.com/apk/res/使用するアプリのパッケージ名"

app:interpolator="overshoot_interpolator"

が必要です。

interpolatorに設定可能なリストはここに定義されています。

RealViewSwitcher/res/values/attrs.xml at master from tomorrowkey/RealViewSwitcher - GitHub 
https://github.com/tomorrowkey/RealViewSwitcher/blob/master/RealViewSwitcher/res/values/attrs.xml

注意点

人によってフリックするときの感覚が違うと思うので、閾値の調整が必要です。

ぜひ、コードを読んで調整してみてください。

サンプルアプリ

https://github.com/tomorrowkey/RealViewSwitcher/downloads

ソースコード

tomorrowkey/RealViewSwitcher - GitHub

https://github.com/tomorrowkey/RealViewSwitcher

最後に

初めてViewGroupを書いてみて、Androidの描画の仕組みについて理解が深まりました。

Androidの独自Viewは大変だけど楽しいですね。



2011-10-05

Canvas#drawTextするときのメモ

どの値が何を表しているかよく忘れるのでメモ

原点

f:id:tomorrowkey:20111006002741p:image:w400

Canvas#drawText() に指定する座標はここになる。

f:id:tomorrowkey:20111006002740p:image:w400

文字の幅を取得するにはPaint#measureText(:String):floatを使う。

高さ

f:id:tomorrowkey:20111006002739p:image:w400

Top一番上
Ascent文字の上限
Leading原点のyと同じ位置
Descent文字の下限
Bottom一番下

文字のそれぞれのy位置が取得できる。

Paint#getFontMetrics()で取得できるFontMetrixから、フィールドの値を取り出せる。

bottom - topをすれば高さが取得できる。

値(追記)

Paint.setTextSize(:int)に96を設定した場合のそれぞれの値

leadingは必ず0になる

他はleadingからの相対的な位置の差

top-100.59375
ascent-89.109375
leading0.0
descent22.640625
bottom26.015625

調査に使用したソースコード

http://code.google.com/p/tomorrowkey/source/browse/#svn%2Ftrunk%2FFontMetrics