web-dev-qa-db-ja.com

PhoneGap-横方向の強制

昨日PhoneGapを調べ始め、携帯電話を傾けながら転がるシンプルな「大理石」を作成しました。私は現在、Androidで開発していますが、携帯電話が回転したときに移動するのではなく、方向を美化として維持したいです。これを行う方法はありますか?

マニフェスト:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.phonegap.helloworld"
    Android:versionCode="1"
    Android:versionName="1.0" >
<supports-screens
    Android:largeScreens="true"
    Android:normalScreens="true"
    Android:smallScreens="true"
    Android:resizeable="true"
    Android:anyDensity="true"
/>
<uses-permission Android:name="Android.permission.CAMERA" />
<uses-permission Android:name="Android.permission.VIBRATE" />
<uses-permission Android:name="Android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />
<uses-permission Android:name="Android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission Android:name="Android.permission.READ_PHONE_STATE" />
<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.RECEIVE_SMS" />
<uses-permission Android:name="Android.permission.RECORD_AUDIO" />
<uses-permission Android:name="Android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission Android:name="Android.permission.READ_CONTACTS" />
<uses-permission Android:name="Android.permission.WRITE_CONTACTS" />
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission Android:name="Android.permission.GET_ACCOUNTS" />
<uses-permission Android:name="Android.permission.BROADCAST_STICKY" />
<uses-sdk Android:minSdkVersion="8" />
    <application
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name" >
        <activity
            Android:name=".App" 
            Android:configChanges="orientation|keyboardHidden"
            Android:label="@string/app_name" >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />
                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity 
            Android:name="com.phonegap.DroidGap" 
            Android:label="@string/app_name" 
            Android:screenOrientation="landscape"
            Android:configChanges="orientation|keyboardHidden"> 
            <intent-filter></intent-filter> 
        </activity> 
    </application>
</manifest>

コード:

package com.phonegap.helloworld;

import Android.os.Bundle;
import org.Apache.cordova.*;

public class App extends DroidGap {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///Android_asset/www/index.html");
    }
}
33
Phil Jackson

これを試しましたか?

Android:screenOrientation="portrait"

AndroidManifest.xmlファイル、アクティビティを宣言した場所に、上記の行を追加するだけです。

例えば:

<activity
            Android:name=".Activity.SplashScreenActivity"
            Android:label="@string/app_name"
            Android:screenOrientation="portrait">
            <intent-filter>
                <action
                    Android:name="Android.intent.action.MAIN" />
                <category
                    Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
44
mayur rahatekar

すべてのデバイスに対してこれを行う正しい方法は、config.xmlを構成することです

<preference name="orientation" value="portrait" />

<preference name="orientation" value="landscape" />

https://build.phonegap.com/docs/config-xml

30
Anton

とても簡単です。AndroidManifest。xmlファイルにAndroid:screenOrientation="landscape"を追加する必要があります。

<application Android:icon="@drawable/icon" Android:label="@string/app_name">
    <activity Android:name=".LogUploaderActivity" Android:label="Log Uploader" Android:screenOrientation="landscape" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />
            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
7
Lucifer

アクティビティでこれを試してください。 onCreate()内およびsetContentViewの前。

// keeps the screen orientation in Landscape mode
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
3
jyotiprakash

私はそれを知らなかったので、言及することが重要かもしれません:

ハイドレーションが有効を使用してオンラインphonegap apkコンバーターを使用する場合、アプリを更新するのではなく、完全にrebuildする必要があります。これは、「向き」や「フルスクリーン」などの設定でも役立ちます。

1
howard.D