代码之家  ›  专栏  ›  技术社区  ›  Netanel

更改屏幕动画的开始

  •  -2
  • Netanel  · 技术社区  · 7 年前

    我希望我的一个活动从屏幕的底部,当它开始和结束时,我希望它消失回到底部。 有可能吗?如果是的-你知道怎么做吗?

    提前谢谢。

    3 回复  |  直到 7 年前
        1
  •  0
  •   Stef    7 年前

    可以在startActivity()之后调用overridePendingTransition()来更改启动新“活动”时场景的更改方式。

    @Override
        public void finish() {
            super.finish();
            overridePendingTransition(R.anim.slide_in_top, R.anim.slide_out_bottom);
        }
    

    其中slide_out_bottom位于Res\anim文件夹中,可能如下所示:

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

    这是从项目中修改的代码,因此您必须对其进行测试。

        2
  •  0
  •   Asteroid    7 年前

    animations :进入和退出您的活动

    R。动画输入

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

    R。动画退出

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

    class TestActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            overridePendingTransition(R.anim.enter, android.R.anim.fade_out)
        }
    
        override fun finish() {
            super.finish()
            overridePendingTransition(R.anim.exit, android.R.anim.fade_in)
        }
    
        override fun onBackPressed() {
            finish()
        }
    }
    
        3
  •  0
  •   white hills    7 年前

    可以在startActivity()之后调用overridePendingTransition()来更改“开始新活动”动画。

    试试这行代码

    滑到_左.xml

    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="-100%p"
               android:interpolator="@android:anim/accelerate_decelerate_interpolator"
               android:duration="@integer/slide_animation_duration"/>
    

    向右滑动

    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%p"
               android:interpolator="@android:anim/accelerate_decelerate_interpolator"
               android:duration="@integer/slide_animation_duration"/>
    

    星际战术(意图); 覆盖端转(R。阿尼姆。从右边滑,右。动画。向左滑动);