如何解决方向问题?

发布于 2024-12-07 20:55:54 字数 1950 浏览 1 评论 0原文

我想要制作 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 分辨率显示横向模式。 我必须在我的菜单文件中进行哪些更改。

I want to make 480x800, 600x800, 600x1024 and 800x1280 resolution layouts.

i have to show both orientation(portrait and landscape) with resolution 600x800, 600x1024 and 800x1280 and resolution 480x800 show only landscape mode.

Right now it is showing both orientation mode.

<?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> 

my issue is how i am able to show landscape mode only with resolution 480x800.
what changes i have to do in my menifest file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

叶落知秋 2024-12-14 20:55:54

拥有条件布局的最佳方法是在 /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 用于进一步的方向模式。

The best way to have conditional layouts is by using qualified directory names inside the /res directory.

But in your case, you would need to change the android:screenOrientation of your activity. Alas, it is in the manifest and it does not seem to be setable in your activity layout.

So, I guess you have to use code in your activity onCreate.

First get the screen dimension using:

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

Then conditionally adapt screen orientation using :

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

See ActivityInfo.screenOrientation for further orientation modes.

也只是曾经 2024-12-14 20:55:54

我认为你应该将

layout-land

layout

你的 xml 放入其中。

480x800、600x800、600x1024 和 800x1280 分辨率布局。

您应该创建 drawable-ldip、drawable-mdip、drawable-hdip 文件夹并将图像放入其中。

Android直接拿&差异化分辨率。

I think you should make

layout-land

layout

put your xml in that.

480x800, 600x800, 600x1024 and 800x1280 resolution layouts for that..

you should make drawable-ldip, drawable-mdip, drawable-hdip folder and put your images in that.

Android direct take & differentiated resolution.

最近可好 2024-12-14 20:55:54

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

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

然后获取设备的高度和分辨率。宽度使用 display.getHeight()display.getWidth()

进行接下来的操作就容易多了。

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

First of all check your device resolution by using:

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

Then get the device's height & width using display.getHeight() and display.getWidth().

It is much easier to do the next operations.

You can use OrientationListener in order to check the orientation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文