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

news/2024/11/21 1:23:51/

在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() {@Overridepublic 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 即可。其他的自己在调试即可。。


http://www.ppmy.cn/news/610837.html

相关文章

利用C语言控制Exynos4412芯片及硬件 6.27

1.LED 1.需求:点亮LED4 2.看原理图,确定硬件原理,确定管脚XvVSYNC_LDI 给高电平--输出1--灯亮GPIO:通用输入输出端口 GPF3_4 输出高电平--灯亮GP端口 F组号 3.芯片手册GPF3CON:0x114001E0 [19:16] 0x1 OutputGPF3DA…

浅谈MySQL中utf8和utf8mb4的区别

一、什么是UTF8MB4? 我们在使用PhpMyAdmin管理面板时,可以在首页看到名为“Server connection collation”(服务器连接排序规则)的选项,用来选择所使用的字符集。对于我们常用的UTF8,却有utf8和utf8mb4两种…

洛谷P4053 [JSOI2007]建筑抢修

放题解 题目传送门 放代码 #include <bits/stdc.h>//万能头 #define MAXN 150000//最多的建筑数量&#xff08;数据范围&#xff09; using namespace std;inline int read()//快读 {int ret0,f1;char chgetchar();while (ch<0||ch>9){if (ch-) f-f;chgetchar();}w…

TVM Reduction降低算力

TVM Reduction降低算力 这是有关如何降低算力TVM的介绍材料。像sum / max / min这样的关联约简运算符是线性代数运算的典型构造块。 本文将演示如何降低TVM算力。 from future import absolute_import, print_function import tvm import tvm.testing from tvm import te impo…

Android VideoView播放视频

假如你这个播放视频很简单的一个播放功能&#xff0c;没有其他的特殊要求&#xff0c;那么VideoView播放肯定是最好的选择&#xff0c;当然别人封装好的 使用也是很不错的选择 下面先写一个简单的网络播放 首先在配置文件中&#xff0c;添加联网的权限 <uses-permission…

电商系统购物车流程图

1.用户添加购物车的逻辑流程图2.用户打开购物车的逻辑流程图

【数据结构】线性表——顺序表 链式表 单链表 双链表 循环链表 静态链表

文章目录 二 线性表1.定义与基本操作2.顺序表2.1 定义2.2 静态分配 3.链式表3.1 单链表3.1.1 定义3.1.2 建立1&#xff09;头插法建立单链表2&#xff09;尾插法建立单链表 3.1.3 插入3.1.4 删除3.1.5 查找1&#xff09;按序号查找结点2&#xff09;按值查找结点 * 单链表完整代…

电商订单逻辑流程图

1.生成订单2.用户确认订单