4

Androidでこのアニメーションを実現する方法は次のとおりです。以下は、変更しようとしたリンクですが、下の画像のような出力はありません。

ここに画像の説明を入力

http://horribile.blogspot.in/2011/11/android-3d-carousel.html

https://github.com/rameshkec85/Android-VerticalCarousel

以下のように、垂直アニメーション用に以下の関数を変更しました。

private void Calculate3DPosition(CarouselItem child, int diameter,
            float angleOffset) {

    angleOffset = angleOffset * (float) (Math.PI / 180.0f);
    float x = 0.0f;
    float y = (float) (diameter / 2 * Math.sin(angleOffset)) + diameter / 2 - child.getWidth() / 2;
    float z = diameter / 2 * (1.0f - (float) Math.cos(angleOffset));                 

    child.setItemX(x);
    child.setItemZ(z);
    child.setItemY(y);
    }

結果としてこれを実装すると、アニメーションが正しく動作せず、画像が中央に正しく表示されません。

このアニメーションを正しく実装している団体はありますか。私に送ってください。

前もって感謝します。

4

2 に答える 2

2

まず、次のように設定してみてください。

float x = child.getWidth() / 2;

これにより、画像が中央に配置されていないという問題が解決するはずです。y と z は問題ないように見えますが、ビューの幅ではなく高さを考慮して y の配置を変更してみてはいかがでしょうか?:

float y = (float) (diameter / 2 * Math.sin(angleOffset)) + diameter / 2 - child.getHeight() / 2;

私はプロジェクトをセットアップしていないので、これが機能するかどうかはわかりませんが、少なくともあなたに近づくことを願っています:)

幸運を!

于 2013-09-24T12:22:56.037 に答える