我有这个启动画面,在主Activity
开始之前显示图像几秒钟,它有一个肖像版本(drawable-hdpi / splash)和一个横向版本(drawable-land-hdpi) 。初始屏幕在onCreate()
。
如果我让平板电脑处于纵向模式并启动应用程序,则启动画面会旋转到横向,但由于某种原因,它会加载纵向可绘制(仍然旋转到横向)而不是可绘制的横向版本,即使我们显然是在横向模式。我猜测某个地方安卓机器本身仍处于纵向状态,并解析为可绘制的肖像版本。任何线索如何让它加载正确的drawable?
activity_splash.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black" >
<ImageView
android:id="@+id/splash_imageview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@null"
android:scaleType="fitCenter"
android:src="@drawable/splash" />
</FrameLayout>
SplashActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (DisplayUtils.isTablet(this)) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
setContentView(R.layout.activity_splash);
清单的相关部分
<activity
android:name="com.foo.SplashActivity"
android:configChanges="keyboardHidden|screenSize|orientation"
android:noHistory="true"
android:theme="@style/SplashTheme" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>