Home > android > Android用Comic Viewer

Android用Comic Viewer

電子ブックリーダー欲しいなぁ。
そうか、Androidで作ればいいんだ!

というノリで作りました。

せっかくなので、使った事の無いGridViewとかGarallyを使ってみました。

スクリーンキャスト

スクリーンキャストはこんな感じです。

動作確認した環境
  • Mac OSX 10.5.1
  • android_sdk_darwin_m3-rc37a

SDカードをセットしてemulatorを起動して下さい。

emulator -sdcard /tmp/sdcard.img

エミュレータにSDカードをセットする方法はコチラを参考にしてみて下さい。

というのも、/sdcard/comicというディレクトリ内にあるzipファイルを全て決め打ちで読みにいくからです。
例外処理が入ってないので、zip圧縮した内容にjpgやpng以外のファイルが含まれていると動かないかもしれません。

気になるところ

タッチ画面での横スクロールができない。
縦スクロールは簡単に動いてくれるのですが、なぜか横スクロールができない。
仕方ないので、代替案として矢印キーで横スクロールできるようにしました。
かなり不細工です…
どうすれば滑らかな縦スクロールのような横スクロールを実現できるんだろう?

別の代替案として、Webkitで画像表示しようかとも考えた。
現時点ですでに重いのにWebkitでさらに重くするのは精神的に耐えられなかったので断念。

あとは、拡大とか縮小したときの画像の表示位置。
きめ細かな部分の実装を適当にしてしまった。
習作なので…ゴニョゴニョ。という言い訳をしてみる。

ダウンロード

とりあえずeclipseプロジェクトを公開しますので、興味のある方はご参考下さい。
ダウンロード

追記(2008.02.23)

m5-rc14版は「Android用電子ブックリーダをm5-rc14に移植」をご覧下さい。

関連のありそうなエントリ

Comments:5

安藤恐竜 08-01-14 (月) 15:16

Zaurusで試してみました。ダメでした。ComicViewerがダメなのではなくて、SD Cardが読めないようなのです。

エミュレータで、mksdcardで作ったイメージをマウントすると、/sdcardにandroidというディレクトリが出来るのですが、cdしてもlsしても中身が見えないんです。

もちろん、実機のSD Cardにはそんなファイルはないですから、どうもそのあたりに小細工があるらしく。DRM関係かなぁとぼんやり考えてます。

ちょっと前にコレを試してみて気づきました。
http://www.helloandroid.com/node/134

安藤恐竜 08-01-14 (月) 16:51

あー。ちょっと間違い。今、確認したらZaurusのSD Cardにも
/sdcard/android/media.db
っぅのが出来てました。なんか変。ごにょごにょして動いたら、また記事書きます。

あー。ついでに質問させていただいてよろしいでしょうか?ziplist = Filer.fileList(COMIC_DIR, “zip”);の中身、コンソールに表示したいんですけど、どーしたらいいんでしょ?forの中で println(ziplist[i]);すれば動くのかな。低次元な質問ですみません。Java触るの10年ぶりだったりするもので。(冷や汗)

adamrocker 08-01-15 (火) 0:39

おっと!コミックビューアまで試していただいてるんですか?
すごく嬉しいです。アザーッス!
でも、Zaurusだとうまくいかないかもしれません。
その理由は、ビューアのページめくりがタッチスクリーン上でしか出来ないためです。
(ZaurusのタッチスクリーンってAndroidで正常に動作してませんでしたよね?)
十字キーは、表示している画像を動かすのに使う仕様にしてしまっています。

今回は特急で作ってしまったので、SDカードの有無すらエラー表示していないかも…
そこらへんも含めて、いろんな点で品質に問題ありです。スミマセン(汗)

コンソール表示ですが、これはエミュレータの話ですよね?
調べた限りではAndroidのエミュレータでコンソール表示はサポートされていないようです。
私の場合、対応策は2つです。
1.デバッガでブレークポイントを仕掛ける。←いつもこれです
2.Log表示する。
いずれも、eclipseと付属のデバッガDDMSのどちらでも実現できます。

eclipseで2をやる場合を参考に記しておきます。
i) ログ用コンソールを表示する
 Window→Show View→Other→Android→LogCat
ii) Android付属のロギングAPIを使う。
 例えばLog.i(TAG, MSG);

今回の場合はこんな感じにしてみました。
ziplist = Filer.fileList(COMIC_DIR, “.zip”);
for (int i = 0; i < ziplist.length; i++) {
Log.i(”COMIC”, ziplist[i]);
}

参考になれば幸いです。
また、別のAndroidアプリを作ってみますので、良ければZaurusで試して下さい。
かなり楽しみにしています。多謝。

安藤恐竜 08-01-15 (火) 8:14

低次元な質問に丁寧にお答えいただき、恐縮です。

今日はちといじってる時間がとれなさげなので、明日以降にごにょごにょしてみます。

ありがとうございました。

adamrocker 08-01-16 (水) 23:27

いえいえ。私も勉強になります。
Zaurusを意識してComicViewerをアップデートしました。
ご参考になればと。
http://www.adamrocker.com/blog/177/comic_viewer2_for_android.html

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/176/android_comic_viewer.html/trackback/
Listed below are links to weblogs that reference
Android用Comic Viewer from throw Life

Home > android > Android用Comic Viewer

Search
Feeds
Meta

Return to page top