Android TransitionDrawableをプログラムで初期化する

画像のクロスフェードの方法を探している際、
TransitionDrawableというのがありました。

画像を3枚以上重ねて順番にフェードしていく動作を実現したかったので
このクラスで動的に複数のImageViewを格納したら出来るかと思ったのですが、
どうやら2枚までしか使えなかったため、別の方法にしました。

xmlの記載の方法はこちらを参考にさせて頂きました。
http://www.k-sugi.sakura.ne.jp/java/android/1995/

動的に初期化する方法が探しても見つからなかったためメモしておきます。
アクティビティを継承したクラス内で実行する場合を想定してます。

[java]
TransitionDrawable td = new TransitionDrawable(
new Drawable[]{
this.getResources().getDrawable(R.drawable.[drawableのリソース]),
this.getResources().getDrawable(R.drawable.[drawableのリソース])
}
);
(任意のImageView).setImageDrawable(td);
td.startTransition(duration);

[/java]

Android AlertDialogのOnDismissListenerで落ちる

Android4以上だったら大体のメソッドが使えるかと思っていましたが、
4.2で動いていたOnDissmissLisnerが4.0でメソッドが無いというエラーが出て落ちました。

ダイアログが消えた後に共通で処理をする場合
ボタンが押されればイベントが取れるのですが、
背景をタップしてもダイアログが消えるので使ってました。

API17から追加されたメソッドのようで、
代わりにOnCancelListenerを使うようにしました。

以下の記事が参考になりました。
stackoverflowの投稿

Android View アニメーションのまとめ

今やってる仕事でFacebookのようなドラッグでスライドするメニューを付ける必要があり、
いろいろ調べた結果をまとめてみた。
iPhoneで実装した場合は軽々できていたが、相当苦労した・・・

ドラッグ可能なビューを作る時に参考にしたサイト
http://blog.haw.co.jp/android/?p=709

今回はonClickとonTouch両方の判定が必要になるため、GestureDetectorによる実装を採用。

ドラッグ後にスライドアニメーションをするときに参考にしたサイト
http://zaki.tdiary.net/20110607.html

TranstateAnimation、Objectanimatorなど試したがうまくいかず、
ViewPropertyAnimatorというものがあり、これだと
View.animate().x(300)とかでやっとうまくいった。

このアニメーションの実装に合わせ、
ドラッグでビューを移動するときは.layoutでleftの値をいじっていたが、
view.setX(300)でXプロパティをいじるように修正した。

これでやっと機能の実装に移れる・・・

オープンソースのライセンスまとめサイトがありました

今作っているAndroidアプリで
Facebookのような右からスライドしてくるメニューを実装したいと思い
手頃なライブラリを探したところ、以下のページのライブラリがよさそうでした。
Androidアプリにサイドメニューを簡単に追加できるライブラリ(別ウィンドウで開きます。)

Apache2.0ライセンスとのことで、
何をすればいいのか調べたら、まとめサイトを発見しました。

たくさんあるオープンソースライセンスのそれぞれの特徴のまとめ(別ウィンドウで開きます。)

これによるとソースを使用していることを明記する必要があるとのことなので、今回の仕事では難しいと判断しました。
何気なく使ってるソースですが、こちらのまとめサイトのおかげでライセンスで困ることがなくなりそうです。