如何解决方向问题?

时间:2011-10-03 06:09:36

标签: android orientation

我想制作480x800,600x800,600x1024和800x1280分辨率布局。

我必须以分辨率600x800,600x1024和800x1280显示方向(纵向和横向),分辨率480x800仅显示横向模式。

现在它正在显示两种方向模式。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.nga.swp" android:versionCode="1" android:versionName="1.0">

    <supports-screens android:resizeable="true"
        android:largeScreens="true" android:normalScreens="false"
        android:smallScreens="false" android:anyDensity="true" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".MainActivity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:label="@string/app_name" android:windowSoftInputMode="adjustPan">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".PhraseListActivity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:label="@string/app_name" android:windowSoftInputMode="adjustPan" />

        <activity android:name=".ViewActivity" android:theme="@android:style/Theme.NoTitleBar"
            android:label="@string/app_name" />

    </application>

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />

    <uses-sdk android:minSdkVersion="8" />

</manifest> 

我的问题是我如何才能以分辨率480x800显示横向模式。 在我的清单文件中我必须做些什么改变。

3 个答案:

答案 0 :(得分:2)

使用条件布局的最佳方法是在/ res目录中使用限定目录名。

但在您的情况下,您需要更改活动的android:screenOrientation。唉,它在清单中,并且在您的活动布局中似乎不具备可选性。

所以,我想你必须在你的活动onCreate中使用代码。

首先使用以下方式获取屏幕尺寸:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

然后使用以下方式有条件地调整屏幕方向:

if((width != 480) && (height !=800))
   setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

有关更多定位模式,请参阅ActivityInfo.screenOrientation

答案 1 :(得分:1)

我认为你应该做

layout-land

layout

将你的xml放入其中。

480x800,600x800,600x1024和800x1280分辨率布局..

你应该制作drawable-ldip, drawable-mdip, drawable-hdip文件夹并将图像放入其中。

Android直接拍摄&amp;差异化的决议。

答案 2 :(得分:0)

首先使用以下方法检查您的设备分辨率:

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();

然后获得设备的高度&amp;宽度使用display.getHeight()display.getWidth()

进行下一步操作要容易得多。

您可以使用OrientationListener来检查方向。