Allied ArchitectsAllied ArchitectsEngineer Blog

AndroidでImageをぺろんと奥行方向(3D)に回転させる

2012/09/30 Android

最近、とあるAndroidアプリを開発しているのですが、その中でとある画像をぐりんと
奥行き方向というか3Dというか、ぺろんと回転させるという要件がありました。
もっと分かり易く言うと、かるたとかトランプとかの裏表をひっくり返すイメージですね。

標準のアニメーションとして用意されていれば話は早かったのですが、どうやら標準ではないらしい。。
調べ方が悪いんでしょうが、なかなかわからずエラい苦労したのですが、
なんとかやり方がわかりましたのでご紹介してみます。

まず、layoutファイルです。
RelativeLayoutにImageViewを2枚重ねて置きます。

layout/front_back.xml

※このとき、裏面にあたるImageViewのvisibilityは”invisible”にしておきます。

次にぺろんとさせるアニメーションのクラスです。Animationクラスを継承して作ります。

FrontBackSwitchAnimator.class

最後に実際にこれらを使うActivityです。

FrontBackSwitchActivity.class

ちょっとごちゃごちゃしていますが、まとめると、
・何らかのイベントに引っ掛けて、switchFrontBackView()を呼びだす
 その際、switchFrontBackView()にbooleanを渡して、裏表のどちらにひっくり返すのかを制御しています
・switchFrontBackViewメソッド内で、表と裏のImageViewを取得し、2つのViewのvisibility切り替え時に
 アニメーションを付与しています。

イメージが掴みにくいと思いますので、実際に動かして見てください。(動くと思いますので。。

  • cobonas
  • プログラマ
  • 元Javaプログラマ。現在はScala/PlayでWeb開発と、SwiftでiOSアプリ開発をしています。 Unitテストとか書いてる時が一番楽しかったりします。

RELATION ENTRY

Play Framework(Play2)(Scala)のTips Part3:Akkaを使った非同期/バッチ処理(Advent Calendar 20日目)

Play Framework(Play2...

2014/12/20 Scala

この記事はアライドアーキテクツAdvent Calendar 20日目の記事です。 どうも。伊藤(係長)です。 今日は他の方に乗っ取られる事もなく無事に書くことができます。 今回はAkkaを使った非同期処理やバッチ処理についてです。 通常、非同期処理をJavaとかで書こうと思ったら、ちょっとメン...

続きを読む

Play Framework(Play2)(Scala)のTips Part2:Specs2とMockitoでテストを書く(Advent Calendar 8日目)

Play Framework(Play2...

2014/12/8 Scala

この記事はアライドアーキテクツAdvent Calendar 8日目の記事です。 どうも。謎の刺客Tarou Yamadaさんにカレンダーを乗っ取られてしまった伊藤(係長)です。 気を取り直して、今回はSpecs2とMockitoを使ったユニットテストのお話を書きます。 ■Specs2とは ...

続きを読む

cobonasの記事一覧へ

ページTOPへ