我正在开发一个Android应用,当用户旋转设备时,我不想将其方向更改为横向模式。另外,我希望锁定方向在手机上为纵向模式,在平板电脑上为横向模式。可以实现吗?如果可以,如何实现?谢谢。
我正在开发一个Android应用,当用户旋转设备时,我不想将其方向更改为横向模式。另外,我希望锁定方向在手机上为纵向模式,在平板电脑上为横向模式。可以实现吗?如果可以,如何实现?谢谢。
Answers:
您只需在文件的activity元素内定义下面的属性AndroidManifest.xml。这会将您的方向限制为纵向。
android:screenOrientation =“ portrait”
例:
<activity
android:name="com.example.demo_spinner.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
另外,如以下爱德华·卢卡(Eduard Luca)的评论所述,screenOrientation="sensorPortrait"如果您想启用180度旋转,也可以使用。
sensorPortrait如果您希望用户能够将屏幕旋转180度:)
您必须在中添加android:screenOrientation="portrait"指令AndroidManifest.xml。这将在您的<activity>标签中完成。
此外,《 Android开发人员指南》指出:
[...]您还应该明确声明您的应用程序要求元素具有纵向或横向。例如,
<uses-feature android:name="android.hardware.screen.portrait" />。
我可以看到您接受了不能完全解决问题的答案:
android:screenOrientation="portrait"
这将迫使您的应用在手机和平板电脑上均为纵向显示。
您可以通过使用以下命令将应用强制设置为设备的“首选”方向
android:screenOrientation="nosensor"
这将迫使您的应用在大多数手机上变成纵向,而在平板电脑上变成横向。有许多带有键盘的电话,这些电话是为横向模式设计的。强制将应用设为纵向可使其在此类设备上几乎无法使用。Android最近也正在迁移到其他类型的设备。最好只是让设备选择首选方向。
可能是..您必须通过编程来识别它是平板电脑还是手机...首先检查设备是手机还是平板电脑
然后......
if(isTablet)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}else
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
android:screenOrientation="locked"
在 <application>所有应用程序中 <activity>进行实际活动
在活动标签下的清单文件中,将屏幕方向设置为纵向。
这里的例子
您需要输入每个活动
对于肖像
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity"
用于景观
android:screenOrientation="landscape"
tools:ignore="LockedOrientationActivity"
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.thcb.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity2"
android:screenOrientation="landscape"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>