我正在使用Apis的deme进行两次活动之间的滑入和滑出。但是,当我从一个活动跳到另一个活动时,会出现黑屏。
幻灯片左 -
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:duration="300"
android:fromXDelta="100%p"
android:toXDelta="0" />
</set>
幻灯片 - 右 -
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:duration="300"
android:fromXDelta="-100%p"
android:toXDelta="0" />
</set>
从一项活动跳转到另一项活动: -
Button button1 = (Button) findViewById(R.id.Button01);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(), SecondView.class));
overridePendingTransition(R.anim.slide_left, R.anim.slide_right);
});
为什么这个黑屏出现在两个活动之间。
答案 0 :(得分:5)
你的第一个xml应该是:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:duration="300"
android:fromXDelta="0"
android:toXDelta="100%p" />
</set>
fromXDelta是在动画开头应用的水平平移。将其设置为“100%p”会使第一个活动在动画开始时立即移出屏幕,因此会出现空白屏幕。
对函数overridePendingTransition(int, int)
的调用应该是这样的:
overridePendingTransition(R.anim.slide_right, R.anim.slide_left);
第一个参数确定第二个活动使用的过渡动画。此外,这两个动画可以更恰当地命名为slide_out_to_right和slide_in_from_left,因为实际上它们都向右滑动。