Mat*_*att 19 java android transition android-activity
我无法通过按下按钮来确定如何将活动滑入和滑出.我想要的是用户按下按钮然后屏幕滑动.我想要的方式是第一个活动(带按钮的活动)向左滑动,而新的第二个活动从右侧滑入.
使用下面的代码,当单击该按钮时,当我希望它向左滑动时,第一个活动向右滑动.然后当它完成滑动时,剩下的就是黑屏一瞬间,然后第二个活动就会出现而不会滑入.
因此,第一个活动是滑出错误的方向,下一个活动只是出现而不是滑动.我究竟做错了什么?我很难理解XML文件,所以听到以下所有内容的代码.
第一项活动
@Override
public void onCreate(Bundle savedInstanceState) {
playBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainMenu.this, Levels.class);
startActivity(intent);
overridePendingTransition(R.anim.enter_from_right, R.anim.exit_out_left);
}
});
Run Code Online (Sandbox Code Playgroud)
第二项活动
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.levels);
overridePendingTransition(R.anim.enter_from_left, R.anim.exit_out_right);
Run Code Online (Sandbox Code Playgroud)
所以我认为我的一些XML文件可能不正确.他们来了.
enter_from_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="100%"
android:toXDelta="0%" >
</translate>
</set>
Run Code Online (Sandbox Code Playgroud)
enter_from_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="-100%"
android:toXDelta="0%" >
</translate>
</set>
Run Code Online (Sandbox Code Playgroud)
exit_out_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="0%"
android:toXDelta="-100%" >
</translate>
</set>
Run Code Online (Sandbox Code Playgroud)
exit_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>
</set>
Run Code Online (Sandbox Code Playgroud)
编辑
删除overridePendingTransition()第二个活动,使第一个活动向左滑动,这是我想要的.但是,当第一个活动滑落时,它仍然只是显示黑屏而不是让第二个活动从右侧滑入.
pan*_*ini 20
您只需在调用后覆盖动画,而不是覆盖两者startActivity()和新活动中onCreate()的动画startActivity().
二int是你提供overridePendingTransition(int enterAnim, int exitAnim)对应于两个动画-删除旧的Activity和添加新的.
对于你的第二个问题,我相信你的fromXDelta设置错误,-100%应该一直离屏幕的左侧,而不是右边,所以将其改为100%应该修复它.
看看我的要点,它完美地工作:
1.重写CommonActivity的startActivity并完成
@Override
public void startActivity(Intent intent) {
super.startActivity(intent);
overridePendingTransition(R.anim.from_right_in, R.anim.from_left_out);
}
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.from_left_in, R.anim.from_right_out);
}
Run Code Online (Sandbox Code Playgroud)
2.from_left_in.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-100%p"
android:toXDelta="0"
android:duration="300"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>
Run Code Online (Sandbox Code Playgroud)
3.from_right_in.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p"
android:toXDelta="0" android:interpolator="@android:interpolator/accelerate_decelerate"
android:duration="300"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>
Run Code Online (Sandbox Code Playgroud)
4. from_left_out.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0"
android:toXDelta="-100%p"
android:duration="300"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>
Run Code Online (Sandbox Code Playgroud)
5.from_right_out.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0"
android:toXDelta="100%p"
android:duration="300"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>
Run Code Online (Sandbox Code Playgroud)
要点链接:https : //gist.github.com/JagieChen/f5cc44bf663f3722bd19097be47ccf9b
| 归档时间: |
|
| 查看次数: |
42080 次 |
| 最近记录: |