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。

相关推荐
恋猫de小郭几秒前
iOS 26 开始强制 UIScene ,你的 Flutter 插件准备好迁移支持了吗?
android·前端·flutter
杨筱毅3 分钟前
【底层机制】【Android】【面试】Zygote 为什么使用 Socket 而不是 Binder?
android·1024程序员节·底层机制
快乐10115 分钟前
Media3 ExoPlayer扩展FFmpeg音视频解码
android
zgyhc20501 小时前
【Android Audio】安卓音频中Surround mode切换流程
android·音视频
gfdgd xi3 小时前
Wine运行器3.4.0——虚拟机安装工具支持设置UEFI启动
android·windows·python·ubuntu·架构
shaominjin1233 小时前
OpenCV 4.1.2 SDK 静态库作用与功能详解
android·c++·人工智能·opencv·计算机视觉·中间件
东坡肘子4 小时前
Swift 官方发布 Android SDK | 肘子的 Swift 周报 #0108
android·swiftui·swift
_Johnny_5 小时前
PyCharm 快速运行 django project
ide·pycharm·django
摇滚侠9 小时前
IDEA 启动前端项目 IDEA 切换分支
java·ide·intellij-idea
石头wang9 小时前
idea字体的问题(idea应用本身的字体问题)
java·ide·intellij-idea