0

画面の幅と高さを取得するために、アプリに次のコードがあります。

screenHeight = (short) Activity.getWindow().getWindowManager().getDefaultDisplay().getHeight();
screenWidth  = (short) Activity.getWindow().getWindowManager().getDefaultDisplay().getWidth();

AndroidManifest には、次のものがあります。

 <activity
      android:name="com.test.MyActivity"
      android:configChanges="keyboardHidden|orientation"
      android:launchMode="singleTask"
      android:screenOrientation="landscape"
      android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
 </activity> 

ここで、画面解像度が 1280x700 のデバイスの場合、screenWidth 変数の値は常に 1280 であり、screenHeight は 700 であると予想されます。これは、ユーザーが電話をどのように保持しているかに関係ありません。

それでも、screenWidth が 700 で、height が 1280 になることがあります。なぜですか? マニフェスト ファイルでアプリの向きを常に横向きにする必要はありませんか?

4

3 に答える 3

0

マニフェストアクティビティタグに行を入れます

android:configChanges="keyboardHidden|orientation"

アクティビティのメソッドをオーバーライドします

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

その行を onCreate() メソッドに入れます

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAP);

アプリケーションはランドスケープのみに残ります。:)

于 2013-02-21T10:54:12.217 に答える
0

android:screenOrientation="landscape"

これが問題の原因です。問題を解決する必要がある場合は、ポートレートにします。

また、自分自身を制限したくない場合は、コードの向きを確認して、コードをさらに使用してください。

コードではなくアイデアです

 if(getOrientation=="portrait")

   determine height and width.

 else
    ...
于 2013-02-21T10:13:00.480 に答える