1

我计划在两个方向滚动视图上执行旋转动画(请参阅链接)。我得到了 2 向滚动视图的效果,但是现在当我执行 Filp3D 类型的动画(见链接)时,我得到了一个旋转窗口!

我实际上想围绕 x 轴动画执行旋转,然后执行连续动画。

我的代码是:

public class MainActivity extends Activity {

ScrollView sv;
WScrollView hsv;
Animation anim;
RelativeLayout rl;
Button b1,b2,b3;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

/*BIDIRECTIONAL SCROLLVIEW*/
    sv = new ScrollView(this);
    hsv = new WScrollView(this);
    hsv.sv = sv;
    /*END OF BIDIRECTIONAL SCROLLVIEW*/

    rl = new RelativeLayout(this);
    rl.setBackgroundResource(R.drawable.interactivemap);
    sv.addView(rl, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    hsv.addView(sv, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT /*or FILL_PARENT if API < 8*/));
    setContentView(hsv);

    Window window = getWindow();
    window.setLayout(0, LayoutParams.WRAP_CONTENT);

    /* Animation Effects : Stage I */

    applyRotation(0, 45);

    /* Animation Effects : Stage II */
    /* Still to perform ! */
}

private void applyRotation(final float start, final float end) {
    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            final float centerX = hsv.getWidth() / 2.0f + hsv.getLeft();
            final float centerY = hsv.getHeight() / 2.0f + hsv.getTop();
            Log.e("center-x center-y ",centerX+"  "+centerY+"found");
            final Flip3dAnimation rotation = new Flip3dAnimation(start, end, centerX, centerY);
            rotation.setDuration(2000);
            rotation.setFillAfter(true);
            rotation.setInterpolator(new LinearInterpolator());
            hsv.startAnimation(rotation);

        }
    }, 10);
}
}

输出:
1)输出有时是围绕不同轴的动画,然后它变得不可见,好像我没有放置任何 setFillAfter(true),它恰好出现在 Flip3dAnimation 类中,如两个方向滚动视图链接所示。
2)动画来了,但只有原来的窗口在3d空间中旋转,好像一张卡片翻转了45度!

我需要带有任何窗口限制的第二个输出,因为我使用了滚动视图(2d),我希望像在 AOE(帝国时代,说真的,人们玩游戏:D)这样的游戏中像 2d 平面一样可见,或者对于非游戏,开放的 2d 表面。

请指导我实现相同的目标,也请指导我参考一些为 API-8 或 9 执行复杂 2d 动画的源代码。

4

0 回答 0