Android加载drawable而不是drawable-land,即使方向是风景?

时间:2014-03-19 10:43:36

标签: android android-layout

我有这个启动画面,在主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>

0 个答案:

没有答案