android studio开发:设置屏幕朝向为竖屏,强制应用的包体始终以竖屏(纵向)展示

在 Android 中,要强制应用的包体始终以竖屏(纵向)展示,可以通过以下几种方式来实现:

✅ 方式一:

在 AndroidManifest.xml 中设置 Activity 的方向,这是最常用的方法。对所有需要强制竖屏的 Activity 添加如下属性:

xml 复制代码
<activity
    android:name=".YourActivity"
    android:screenOrientation="portrait" />

如果你想整个 app 都是竖屏,就给所有 Activity 都加上 android:screenOrientation="portrait"

✅ 方式二:

在代码中强制设置(不推荐用于所有情况), 可以在 Activity 的 onCreate() 中设置:

java 复制代码
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

不过这种方法 仅在运行时设置方向,可能会被系统配置改变(比如方向感应)影响,不如清单文件里设置稳定。

✅ 方式三:

限制方向感应(可选), 有时你还需要在 res/values/ 的 AndroidManifest.xml之外,进一步防止横屏感应,可以在onConfigurationChanged()中屏蔽方向切换:

java 复制代码
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        // 强制重新设置为竖屏
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
}

注意要在 AndroidManifest.xml 中声明处理方向变化:

xml 复制代码
android:configChanges="orientation|screenSize"

✅ 方式四:

防止游戏或 WebView 横屏(特例)
如果是游戏/Unity/Flutter 等框架项目,要在框架设置中锁定竖屏方向。 WebView 应用 也一样,Activity 设为竖屏就行了。

批量修改多Activity为竖屏

如果你想批量将多个 Activity 设置为竖屏显示,最直接且可靠的方式是批量修改 AndroidManifest.xml 文件中的每个activity标签,加上:

xml 复制代码
android:screenOrientation="portrait"

✅ 方法一:手动编辑(适用于少量 Activity)

手动为每个 activity 加上 android:screenOrientation="portrait",例如:

xml 复制代码
<activity android:name=".MainActivity"
          android:screenOrientation="portrait" />
<activity android:name=".SettingsActivity"
          android:screenOrientation="portrait" />

✅ 方法二:用正则或脚本自动添加(适用于大量 Activity)

如果你有很多activity 标签,可以使用 Python 脚本、正则表达式、IDE 批处理 来添加这个属性。

🔧 示例 Python 脚本(自动添加竖屏设置)

python 复制代码
import re

with open('AndroidManifest.xml', 'r', encoding='utf-8') as f:
    content = f.read()

# 匹配所有 activity 标签并添加 screenOrientation(如果没有的话)
def add_portrait_orientation(match):
    tag = match.group(0)
    if 'android:screenOrientation' not in tag:
        tag = tag.replace('<activity', '<activity android:screenOrientation="portrait"', 1)
    return tag

new_content = re.sub(r'<activity\s+[^>]+>', add_portrait_orientation, content)

with open('AndroidManifest.xml', 'w', encoding='utf-8') as f:
    f.write(new_content)

print("所有 Activity 已设置为竖屏。")

✅ 方法三:Android Studio 批量修改(带预览)

打开 AndroidManifest.xml。

使用快捷键 Ctrl + R (Windows) 或 Cmd + R (macOS)。

搜索正则:<activity(?![^>]*screenOrientation)[^>]*>

替换为:<activity android:screenOrientation="portrait" + 原内容(你可以先测试一下)。

⚠️ 注意:确保不会重复添加已有的 screenOrientation。

相关推荐
在多学一点13 小时前
MYSQL第二次作业
android·数据库·mysql
骑着蜗牛撵大象32713 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
我叫张土豆13 小时前
Android 14+ 模拟器抓包实录:把 Burp CA 装成系统 CA,让 targetSdk≥34 的 App 乖乖解密
android
booboosui17 小时前
Android 悬浮窗藏不住自己:一个标志位与 140 毫秒
android
传奇开心果17 小时前
【Flutter踩坑排雷】第5课:扩展方法冲突坑|同名扩展引发编译歧义,故障规避手段
android·flutter
.痞老板.20 小时前
mysql初阶--数据类型
android·数据库·mysql
StarsGreen20 小时前
Android 启动流程详解
android·linux·单片机·嵌入式硬件
booboosui2 天前
Android 上来电怎么判:7 个条件加 5 个中文词
android
MardaWang2 天前
App 内嵌 H5 的信任边界设计(ArkWeb/HarmonyOS 实战)
android
石头慢慢说2 天前
不写 XPath,让 AI 在真机上跑测试:Appium MCP 全流程实战
android