这很难实现,因为您的启动器始终以纵向模式运行,而您正在以横向模式启动 Activity。
因此,如“F43nd1r”所述,需要实现此解决方法。但还需要做更多的事情。试试这个..
您需要一个纵向模式下的虚拟活动,这将是您的启动器活动,并将采用“NoActionBar.Fullscreen”模式。
public class DummyActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRotationAnimation();
ImageView imageView = new ImageView(this);
imageView.setImageResource(android.R.color.white);
setContentView(imageView);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(DummyActivity.this, YourActivity.class));
finish();
}
},500);
}
private void setRotationAnimation() {
int rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE;
Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
winParams.rotationAnimation = rotationAnimation;
win.setAttributes(winParams);
}
}
YourActivity 还应该具有并从 oncreate() 调用 setRotationAnimation() 方法..
public class YourActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRotationAnimation();
setContentView(R.layout.your_layout);
}
private void setRotationAnimation() {
int rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE;
Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
winParams.rotationAnimation = rotationAnimation;
win.setAttributes(winParams);
}
}
现在最重要的是清单中的主题。它应该看起来像..
<activity
android:name=".DummyActivity"
android:label="@string/app_name"
android:configChanges="orientation"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".YourActivity"
android:label="@string/app_name"
android:configChanges="orientation"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.Holo.Light">
</activity>
注意:1>这只是为了启动应用程序。当您按下返回按钮并退出应用程序时,将显示动画。
2> 在 DummyActivity 中,可以根据您的要求减少 500 毫秒,具体取决于您的设备性能。