Android 设置横屏,竖屏或者禁止横屏的方法

本文详细介绍了在Android开发中如何通过配置文件和Java代码控制屏幕显示方向的方法,包括横屏、竖屏、传感器感应等不同模式的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在android 的配置文件AndroidManifest.xml中有

android:screenOrientation属性

下面看下各个属性

"unspecified":默认值 由系统来推断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.

"landscape":横屏显示(宽比高要长)

"portrait":竖屏显示(高比宽要长)

"user":用户当前首选的方向

"behind":和该Activity以下的那个Activity的方向一致(在Activity堆栈中的)

"sensor":有物理的感应器来决定。假设用户旋转设备这屏幕会横竖屏切换。

"nosensor":忽略物理感应器。这样就不会随着用户旋转设备而更改了("unspecified"设置除外)。

一般我们设置横屏:

android:screenOrientation="landscape"

设置竖屏

android:screenOrientation="portrait"

假如现在设置activity 禁止横屏

我们可以在配置文件中把屏幕设置为竖屏

android:screenOrientation="portrait"

经常玩王者荣耀的都会发现游戏界面是有物理的感应器决定这个时候设置为

android:screenOrientation="sensor"

以上呢就是在配置文件中设置,有时候我们做视频播放的时候里面有一个点击放大的方法,变为了横屏

这个时候就使用java代码

设置横屏代码:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

设置竖屏代码:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

在java 代码中设置呢,需要先设置一个默认的转向,原因是横屏的时候有2个方法的转向

假设不是默认的横屏方向,会把已经横屏的屏幕旋转180°

假如现在又一个图片点击视频屏幕转向代码如下

 findViewById(R.id.big).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(MainActivity.this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                }
            }
        });

视频转向了之后一般都是全屏的,但是加载在竖屏的时候设置播放的视频的布局宽和高不是match_parent 就达不到理想的效果了,这个时候我们可以使用2个布局来处理

如下

加载布局的名字要一样呢

我们看下lalyout-port布局显示的效果

在看看layout-land 里面布局的效果

这个时候我们需要把播放器布局的view高度设置match 即可。其他的自己在调试即可。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值