android: RotateAnimationがうまくいかなかった件
2015/11/17 21:43:53
結論からいうと
画像の中心を中心に、風車みたいに回したかったんですよ。それがなぜか中心点がズレて画像がスウィングされまくってたもんでなんでじゃいーと各数値を調べてみたら、↑で書いた値の取得が0だったわけだ。
RotateAnimation ra = new RotateAnimation(0, 360,
img.getX() + img.getWidth() / 2, img.getY() + img.getHeight() / 2);
みたいなことをやったところでゼロを2で割ってるに過ぎない。危なっかしいったらない。ImageViewならまだ取得できそうなもんだけどな、うぅむ。
幅と高さの取得が有効なブロックで実行すればうまくいくであろうし、他の手段で回転の中心点を指定してやってもうまくいく。なんというか、こんなんで躓くのはガッカリだね。
あと回転させながら移動とか、アニメーションの組み合わせにはAnimationSetを使うが、風車式の回転と移動を併用するには回転を先にaddAnimation()する必要がある様子。
onCreate()内でView.getWidht()ならびにView.getHeight()してたのが悪かったということになる。
画像の中心を中心に、風車みたいに回したかったんですよ。それがなぜか中心点がズレて画像がスウィングされまくってたもんでなんでじゃいーと各数値を調べてみたら、↑で書いた値の取得が0だったわけだ。
RotateAnimation ra = new RotateAnimation(0, 360,
img.getX() + img.getWidth() / 2, img.getY() + img.getHeight() / 2);
みたいなことをやったところでゼロを2で割ってるに過ぎない。危なっかしいったらない。ImageViewならまだ取得できそうなもんだけどな、うぅむ。
幅と高さの取得が有効なブロックで実行すればうまくいくであろうし、他の手段で回転の中心点を指定してやってもうまくいく。なんというか、こんなんで躓くのはガッカリだね。
あと回転させながら移動とか、アニメーションの組み合わせにはAnimationSetを使うが、風車式の回転と移動を併用するには回転を先にaddAnimation()する必要がある様子。
PR
この記事へのトラックバック
この記事のトラックバックURL