最近有这么一个需求,用自定义的手机拍照,拍完后的照片以一个Activity1去显示它,然后我要从Activity1跳到一个Activity2,跳转的时候要有一个淡入淡出的效果,但是这个动画无效,我花了很长时间去研究,希望遇到相同问题的同学少走点弯路。代码很简单,如下
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onBackPressed() {
Intent intent = new Intent(this, Activity1.class);
startActivity(intent);
overridePendingTransition(R.anim.activity_feed_fade_in, R.anim.activity_feed_fade_out);
finish();
}
}
以下是动画代码
activity_feed_fade_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:interpolator="@android:anim/linear_interpolator" >
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:interpolator="@android:anim/linear_interpolator" >
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0" />
</set>
上面的代码其实是没有问题的,他们可以实现淡入淡出的效果,但是在我那个需求里,动画竟然就没有效果,我尝试了各种方法,比如在activity的配置文件中加入theme的style属性,但是均无效。后来才发现,是在Activity的配置属性在作怪
<activity
android:name=".Activity1"
android:screenOrientation="portrait"/>
<activity
android:name="Activity2"
android:screenOrientation="landscape"/>
对,就是 android:screenOrientation="" 属性,也就是说,两个屏幕显示方向不同的Activity在切换时的动画是无效的,这条路是走不通的!
如果有什么不对的地方或者好的解决方案,还希望各位大神指教。