Home > android > Androidでブックリーダ 「ComicViewer2」

Androidでブックリーダ 「ComicViewer2」


前回のエントリで公開した「ComicViewer」をアップデートしました。

変更点

Zaurus上でもちゃんと使えるように仕様を変更しました。
(たぶん、大丈夫なはず…)

Function ComicViewer ComicViewer2
ファイル読込み 固定ディレクトリ(/sdcard/comic)のZIPファイル読込み File Chooserライクなインタフェースでファイル選択
ページ送り タッチディスプレイのみ タッチディスプレイと十字キー
画像移動 十字キー 右はRキー、左はLキーにバインド

タッチディスプレイを使わなくても何とかなる仕様にしましたので、Zaurusでも動くと思います。

おわりに

ソースコードをちょっと奇麗にしました。
ちょっとエラー処理を加えました。
前回のComicViewerはお粗末過ぎました(汗)

ダウンロード

eclipseのプロジェクトをzip圧縮したファイルを公開します。ご自由に利用下さい。
ダウンロード

このエントリをはてなブックマークに登録 Deliciousにブックマーク
関連のありそうなエントリ

Comments:4

安藤恐竜 08-01-17 (木) 22:13

う、動きました!SD Cardから!ひょっとしてFilterクラスが怪しいのかも。

Zoom In/Out, Pan。上下LRちゃんと動きます。

しかも!軽快。超軽快。楽しい。すごく楽しい。API Demoの犬より全然サクサク。あんまり楽しくて、歩きながらザウルス眺めてニヤニヤする怪しい人になっちゃいました。

で、えーと。これはComicなフォーマットに最適化されてるんですね。Canvasの縦横比をある程度固定してるんでしょうか?とりあえず、初音ミクTumblrからわさわさ画像を落としてきてZip作ったので、やたらと痩せたミクとか、やたらと太ったミクとか。大変なことに。

あと。ごにょごにょしているうちに、やたらと重くなって、激しくHDDのLEDを点滅させたまま、一切操作できなくなることがあります。リソースの開放と、DalvikのGCのタイミングでしょうか。

もうちょっと遊んでからブログに記事をあげさせていただきます。いゃぁ、これは楽しい。ありがとうございます。

adamrocker 08-01-18 (金) 9:52

おぉ!動きましたか。良かった。
しかもサクサク動くんですね?!
そういうコメントを頂くと、作った側としては嬉しいです。

>やたらと痩せたミクとか、やたらと太ったミクとか。。。
Panは元の縦横比を維持したままwidthを画面サイズに縮小する処理です。
なので、太ったり痩せたりしないはずなんですが・・・バグってるかな?
もし可能であれば、縦横比が変になる画像を教えていただけませんか?
サンプルがあるとバグを見つけやすいので。

>やたらと重くなって、激しくHDDのLEDを点滅させたまま。。。
ComicViewerの問題は、ZIPファイルを全部展開してメモリに乗っけてしまうことです。
少しずつZIPから画像を読み込んでいくべきだと思うのですが、実装をサボってます(汗)
でも、別のZIPを開くと元のZIPと中の画像はGC対象になるはずなんです。
でもメモリを圧迫してるってことはオブジェクトリンクが切れてなく、GCされてないのかな?
ちょっと調べてみまーす。ご報告有難うございます。

安藤恐竜 08-01-18 (金) 22:56

あーーー。なんか、色々トライしたけど、あんな書き方しかできなかった。すんません。ヘタに煽ると迷惑かけそうだし。げほげほ。ヘタレですみません。

んで。実機動作のキャプチャ入れましたけど、横優先で潰れてる感じがあるんですけど、[Pan]する前の話です。[Pan]すれば大丈夫なんです。お分かりいただけますでしょうか?

んで、もし変になったら、10分から30分ほっとけ、っぅのは本当の話なんです。明らかにダルビッシュじゃなくてDalvikが悪いんです。限界条件で、なんか妙な挙動をしそうな。

えーーーっと。まだ、確証がないんですけど。Filerに使ってるClass、/dataとか/systemとか、アクセスできないかも。/dataを選択しても、../しか出てきません。/sdcardがFilterで見えなかったように、何か仕掛けがあるかも。

色々楽しいですね。うふっ。

adamrocker 08-01-19 (土) 1:30

色々試していただいているみたいでアザーッス。
ちょっと作ってみようってノリだったので品質が低くてご迷惑をお掛けしてます(汗)

>横優先で潰れてる感じ
あぁ!バグってました。アップデートしました。
本はそのオリジナル画像サイズが揃っているという前提での実装にしています。
つまり、読みやすいサイズに拡大した場合、その拡大率をずっと維持します。
単純な式です「オリジナル画像*倍率」。
なので、オリジナルの画像サイズがバラバラだと、
倍率は等しいものの、見た目の大きさがバラバラになります。
でも、縦横比が揃うように修正しているので、太ったり痩せたりすることはなくなったと思います。

>んで、もし変になったら、10分から30分ほっとけ、
一カ所、リソースリークを発見しました。ちょっとミスですが、使い続けるとメモリを圧迫しそうです。
修正しましたが他にもリークが潜んでいるかもしれません。
http://www.adamrocker.com/blog/178/comic_viewer2_update1.html
Android用のプロファイラを探したのですが、現時点ではまだサポートされていないようです。残念。

>Filerに使ってるClass、/dataとか/systemとか、アクセスできないかも。
これは、セキュリティ上の問題かもしれません。
Android APIが提供しているFileクラスを利用してディレクトリのファイル一覧を取得しても、
/data以下のファイルを取得できませんでした。
ユーザアプリケーションからシステム領域や別アプリケーションを弄れると危なそうですしね。
/sdcardはエミュレータ上ではちゃんと見えていたので何とも分かりませんが…(汗)

いやぁ勉強になります!改めてアザーッス。

Comment Form
Remember personal info

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

Trackbacks:3

Trackback URL for this entry
http://www.adamrocker.com/blog/177/comic_viewer2_for_android.html/trackback/
Listed below are links to weblogs that reference
Androidでブックリーダ 「ComicViewer2」 from throw Life
pingback from ComicView Android « iSuriv’s Weblog 08-01-18 (金) 7:47

[…] Se llama ComicView con sus segunda versión.? Cómo el nombre indica, es una apliación para ver comic´s, pero lo curioso es uq elo hace mediante una carpeta comprimida, esto ya lo hacia móviles Nokia de Nseries, pero lo curioso de está aplicación es que cuando lo abrimos podemos seleccionar con una miniatura el comic elegido y luego lo podemos ver, haciendo zoom, etc.. […]

trackback from Android Zaurus 08-01-18 (金) 22:31

ComicViewer - Android Applet…

The authoer of Androitter - a twitter applet for Android - introduced a new applet. (more…)

pingback from Comic Viewer App Shows Off Android Coverflow | Just Another Android Blog 08-01-20 (日) 17:22

[…] http://www.adamrocker.com/blog/177/comic_viewer2_for_android.html Technorati Tags: Comic Viewer, Android apps, coverflow […]

Home > android > Androidでブックリーダ 「ComicViewer2」

Twitter
Search
Feeds
Meta

Return to page top