在安卓中将屏幕从一个活动翻转到另一个活动

4

实际上我想通过在一个活动中点击按钮来旋转或翻转屏幕,就像这个网站一样。

提前感谢。


请尝试此链接: https://dev59.com/XFzUa4cB1Zd3GeqP3XfL - Ashutosh Dubey
3个回答

3

您可以通过以下方式覆盖活动之间的转换:

Button btn = (Button)findViewById(R.id.myBtn);

btn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            startActivity(new Intent(ActualActivity.this, 
                    TargetActivity.class));
            overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);
        }
    });

在这里,slide_in_up和slide_out_up是您自定义的动画,保存在res/anim中。以下是一些代码示例:

slide_in_up:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="-100%p" android:toYDelta="0" android:duration="300"/>
</set>

slide_out_up:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="300"/>
</set>

这个例子将会使你的活动从顶部移动到底部。你可以修改你的动画文件以获得不同的动画效果。


但是,通过XML转换如何实现3D翻转呢? - Goofyahead
1
Xml方式:https://dev59.com/2Goy5IYBdhLWcg3wa9Qj - 编程方式:http://www.inter-fuser.com/2009/08/android-animations-3d-flip.html - Stefano Ortisi
它正在从一个屏幕移动到另一个屏幕,但我希望当我单击一个屏幕时,屏幕必须旋转180度。 - ManjotSingh

1

@abhy 提供的链接是我们所有人都曾经遵循的 :)

但是它不能用于从一个活动切换到另一个活动,我所做的是获取当前活动和即将进入的活动的位图,进行过渡,当完成时,使用没有效果的挂起过渡覆盖 startactivity。

我不认为这是一个好方法,我希望看到是否有更好的想法 :)

敬礼,


这似乎也是一个不错且简单的替代方案,可用于实现翻转动画。 - abhy

1

您可以在这里找到答案:Android中的Activity转换

有两个选项:

  1. 阅读本教程 http://developerlife.com/tutorials/?p=343
  2. 告诉第二个活动(使用按钮打开的那个)在创建时显示哪种动画。

像这样:

@Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        getWindow().setWindowAnimations(ANIMATION);

        ...

    }

你能设置一个继承自Animation类的动画吗?如果不能,那么在XML转换中进行3D旋转就不可能了,是吗? - Goofyahead
@Goofyahead 3D 在这里是一个有点棘手的定义,但基本上你可以在 XML 中定义一个 "3D" 效果。在 API Demos 应用程序中有一个例子。 - Lior Iluz
如何在XML中定义“3D”效果? - ManjotSingh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接