2011年1月31日月曜日

【Android2.2以上】 GridView,ListViewでドラッグ&ドロップ、自動スクロールもする。動画もあるよ。

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

ユーザがソート可能なListViewをすこしリッチにしてみた - 明日の鍵
などを参考にして作成しました。
最近でてる端末って大体Android2.2なんで、2.2以上です。
というのは自動スクロールの為のAbsListView#smoothScrollBy (int distance, int duration)のAPI Levelが8だったからです。
スクロールの処理はあまり格好良くないですが許して下さい。

SortableListViewLayoutというクラスがキモです。
LinearLayoutを継承していて、これの中にandroid:id="@+id/listview"なAbsListView系を置いておくとほぼ勝手にドラッグ&ドロップ可能なListViewになります。
ソース公開するのでもう詳細は読んで下さい。

動画がこちら(画質悪いなー)
サンプルは端末内にインストールされているアプリのアイコンと名前を一覧で出すようになってます。
ListView系はデータ表示にAdapterを使いますが、個人的にSimpleAdapterとViewBinderのコンボばっか使ってます。超便利です。


ソースはこちらの
SortableGridView.zip
SortableListView.zip
です。

2011年1月21日金曜日

青空文庫ビューア version1.0.0リリース

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

ようやく青空文庫ビューアを更新します。
前バージョンは0.0.5でしたが、今回一気に1.0.0になります。


主な変更点


全部作り直しました。
前バージョンのしおりデータ等は全て利用不可となっています。すいません。
無料版と有料版を出す予定です。
今までのバージョンは無料版です。

機能


とりあえず一通りの機能は実装しました。
今後まったりと機能追加やバグ修正等していきたいと思います。


無料版と有料版の違い


無料版:広告付き
market://details?id=jp.dip.sys1.aozora


有料版:広告なし ¥105
market://details?id=jp.dip.sys1.aozora.pro

おすすめ50


作者が適当にチョイスしたおすすめ作品の一覧です。
とりあえず50件あります。適宜増やします。
[おすすめ50]-[作品詳細]-[作品閲覧]といった流れで作品の閲覧ができます。




しおり


しおりが一覧されます。しおりは作品閲覧を行った場合自動で保存されます。

右上のソートアイコン、あるいはメニューボタンを押下する事でソートができます。


作家名で探す


作家名から作家を探し出し、その作家の作品一覧から閲覧したい作品を探す事ができます。


作品名で探す


作品名から作品を探す事ができます。

ランキング


青空文庫のランキングを表示する事ができます。自動的に最新のランキングを取得します。



設定


設定画面では、作品閲覧時の表示設定や初期化を行うことができます。

■表示設定

文字サイズ、行間(ルビサイズ)、文字色、背景色、フォントの種類を設定する事ができます。

フォント設定

フォントはシステムのデフォルトフォントか、IPA明朝を選択する事ができます。
IPA明朝を選択した場合、IPA明朝のフォントデータをダウンロードする事ができます。
一度ダウンロードすれば、次回からはダイアログは表示されません。


読書画面


作品閲覧画面です。

ドラッグ?でシームレスにページがめくれます


作品を閲覧しながら色々な設定が行えます。

■文字サイズ
作品を閲覧しながら文字サイズを変更する事ができます。
文字サイズは15px~50pxの間で設定できます。


■行間(ルビサイズ)
行間を15px~35pxの間で設定できます。
行間と共にルビのサイズも変わります。

■文字色
■背景色
文字色や背景色を選択できます。


■回転
作品閲覧時に画面を回転させる事ができます。


公式サイトを作りました。こちらです。

2011年1月18日火曜日

WindowsでTortoiseGitを使ってAndroidのソースをサクッと持ってきて読む。

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Cygwin入れてrepo syncだって?しゃらくせぇ!
会社とかならcorkscrewとかで串刺し。しゃらくせぇ!
いますぐAndroidのソースを読みたい!
Webで見られる?いやディレクトリ内のgrep的な事したいし、
たまーにビルドしたいし、Eclipseで参照追っかけたりしたいんだ!
といった人はTortoiseGitでサクッとソースもってきたらいいんじゃね?

という事でまとめ。
※この方法は個別でgitのソースを持ってくるだけで、Androidの特定ブランチのソース群をゴソッと持ってくるといった事は多分できませんのでご注意下さい。frameworkやpackagesとかのソースが欲しいとかいった場合に有効な気がします。

手順

  1. msysgitのインストール
  2. TortoiseGitのインストール
  3. TortoiseGitの設定
  4. Androidの特定のプロジェクトをclone
  5. わーい。

1.msysgitのインストール



gitのWindows版と思われるmsysGitをまずインストールします。
ここからインストーラを落とせるのでインストールします(例:Git-1.7.3.1-preview20101002.exe)。


2.TortoiseGitのインストール



次はTortoiseGit。
インストーラで一発です。(例:TortoiseGit-1.6.2.0-32bit.msi)

日本語化もできるらしいです。


3.TortoiseGitの設定


gitを使うにあたってTortoiseGitにmsysGitのパスが通ってるか確認します。(msysGitを先にインストールした場合は自動的にパスが通っているはずです。)
適当なディレクトリで右クリックしsettingを選択してください。

設定の確認をします。



準備おk


4.Androidの特定のプロジェクトをcloneする


AndroidのGitはここ
http://android.git.kernel.org/


例えばプリインされている電卓とかなら
http://android.git.kernel.org/?p=platform/packages/apps/Calculator.git;a=summary
にGitのURLが書かれているのでその辺りを使います。



クローンを作りたいディレクトリで右クリック、「Git Clone...」を選択する



gitのURLを指定する。なんとなくgit://よりhttp://とかがいいかなと思います。
gitプロトコルだとポートが開いてない場合とかあると思うんで。


OKするとダウンロードが開始される。




5.わーい


Eclipseでソース閲覧


framework/base.gitとか持ってくるのとかもいいかもしれないですね。


Eclipse用のプラグインとしてsubclipseならぬgitclipseなるものもあるようですねー

2011年1月5日水曜日

短縮URLを展開するscalaスクリプト

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
に触発されるなどして
Scalaっぽくscala.io.Source#fromURLとかパターンマッチとかで格好良く書けるのではと思ったけどこのザマでした。
■expand.scala
import java.net.{URL,HttpURLConnection};
HttpURLConnection setFollowRedirects false
println(new URL(args(0)) openConnection() getHeaderField("Location"))

使う:
>scala expand.scala http://bit.ly/WVoYy

出力:
>http://www.aozora.gr.jp/

使ってるクラスがJavaなのがちょっとなぁ。でもScalaにはそういう感じのが見つからなかった・・・。