当前位置:首页 » 安卓系统 » 安卓屏幕旋转怎么设置

安卓屏幕旋转怎么设置

发布时间: 2022-01-09 06:40:06

安卓手机屏幕旋转锁定怎么设置

只要把那个通知栏滑下来,放那里自动旋屏关闭掉,然后他就不会屏幕在旋转。

Ⅱ 如何让安卓手机判定屏幕旋转90度 how to make android mobile phone to determine

在介绍之前,我们需要先了解默认情况下android屏幕旋转的机制:
默认情况下,当用户手机的重力感应器打开后,旋转屏幕方向,会导致当前activity发生onDestroy-> onCreate,这样会重新构造当前activity和界面布局,如果在Camera界面,则表现为卡顿或者黑屏一段时间。如果是在横竖屏UI设计方面,那么想很好地支持屏幕旋转,则建议在res中建立layout-land和layout-port两个文件夹,把横屏和竖屏的布局文件分别放入对应的layout文件夹中。
了解了这些以后,我们对android的屏幕旋转方法进行如下总结:
1. AndroidManifest.xml设置
如果单单想设置横屏或者竖屏,那么只需要添加横竖屏代码:
android:screenOrientation="landscape"横屏设置;
android:screenOrientation="portrait"竖屏设置;

这种方法的优点:即使屏幕旋转,Activity也不会重新onCreate。
缺点:屏幕只有一个方向。
2. 代码动态设置
如果你需要动态改变横竖屏设置,那么,只需要在代码中调用setRequestedOrientation()函数:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//横屏设置
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//竖屏设置
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
//默认设置

这种方法优点:可以随意动态设置,满足我们人为改变横竖屏的要求,同时满足横竖屏UI不同的设计需求;
缺点:如果改变设置,那么,Activity会被销毁,重新构建,即重新onCreate;
3. 重写onConfigurationChanged
如果你不希望旋转屏幕的时候Activity被不断的onCreate(这种情况往往会造成屏幕切换时的卡顿),那么,可以使用此方法:
首先,在AndroidMainfest.xml中添加configChanges:
<activity android:name=".Test"
android:configChanges="orientation|keyboard">
</activity>

注意,keyboardHidden表示键盘辅助功能隐藏,如果你的开发API等级等于或高于13,还需要设置screenSize,因为screenSize会在屏幕旋转时改变;
android:configChanges="keyboardHidden|orientation|screenSize"

然后,在Activity中重写onConfigurationChanged方法,这个方法将会在屏幕旋转变化时,进行监听处理:
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stubsuper.onConfigurationChanged(newConfig);
if (newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
// Nothing need to be done here
} else {
// Nothing need to be done here
}
}

这个方法的优点:我们可以随时监听屏幕旋转变化,并对应做出相应的操作;
缺点:它只能一次旋转90度,如果一下子旋转180度,onConfigurationChanged函数不会被调用。
4. 结合OrientationEventListener,自定义旋转监听设置
如果你想更加完美,更加完全的掌控监听屏幕旋转变化,比如,转屏时不想重新onCreate,尤其是在Camera界面,不想出现旋转preview时屏幕的卡顿、黑屏等问题,那么,可以尝试:

首先,创建OrientationEventListener对象:
private OrientationEventListener mOrientationListener;
// screen orientation listener
private boolean mScreenProtrait = true;
private boolean mCurrentOrient = false;

然后,自定义屏幕变化回调接口
abstract protected void OrientationChanged(int orientation);
//screen orientation change event

最后,自定义监听类
private final void () {
mOrientationListener = new OrientationEventListener(this) {
@Override
public void onOrientationChanged(int rotation) {
if (((rotation >= 0) && (rotation <= 45)) || (rotation >= 315)||((rotation>=135)&&(rotation<=225))) {//portrait
mCurrentOrient = true;
if(mCurrentOrient!=mScreenProtrait)
{
mScreenProtrait = mCurrentOrient;
OrientationChanged(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Log.d(TAG, "Screen orientation changed from Landscape to Portrait!");
}
}
else if (((rotation > 45) && (rotation < 135))||((rotation>225)&&(rotation<315))) {//landscape
mCurrentOrient = false;
if(mCurrentOrient!=mScreenProtrait)
{
mScreenProtrait = mCurrentOrient;
OrientationChanged(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Log.d(TAG, "Screen orientation changed from Portrait to Landscape!");
}
}
}
};
mOrientationListener.enable();
}

在onCreate()中调用:
();

这个方法的优点:你可以任意随时准确的监听屏幕旋转变化的状态,可以随时动态改变横竖屏状态;
注:对于Camera来说,你可以设置初始化为横屏或者竖屏,然后对外提供旋转监听,这样,既可以获得屏幕旋转状态,让你做出相应的操作,又不会出现重新onCreate当前Activity造成的卡顿与短暂的黑屏切换。

Ⅲ 安卓手机屏幕怎么转过来,固定住

三星手机开启/关闭屏幕旋转的操作方法:
1.双指下拉顶帘,查找“屏幕旋转”图标,将其点绿即可开启,反之关闭。
2.也可打开手机设定-显示-查找“屏幕旋转”-开启/关闭即可。

Ⅳ 如何在启动时让android系统屏幕旋转90度

设备平放,屏幕朝正上方。以下四个常量分别代表:
private static final int ROTATION_0 = 0;//初始情况。这个时候设备是横屏还是竖屏与硬件设备安装时默认的显示方向有关。
private static final int ROTATION_90 = 1;//设置屏幕方向自动旋转后,右侧翻起侧立时,屏幕会旋转到这个方向。
private static final int ROTATION_270 = 2;//设置屏幕方向自动旋转后,左侧翻起度侧立时,屏幕会旋转到这个方向。
private static final int ROTATION_180 = 3;//设置屏幕方向自动旋转后,屏幕底部侧立时,屏幕会旋转到这个方向。

再看两个数组:
view plain
private static final int[][][] THRESHOLDS_WITH_180 = new int[][][] {
{{60, 165}, {165, 195}, {195, 300}},
{{0, 30}, {165, 195}, {195, 315}, {315, 360}},
{{0, 45}, {45, 165}, {165, 195}, {330, 360}},
{{0, 45}, {45, 135}, {225, 315}, {315, 360}},
};
private static final int[][] ROTATE_TO_WITH_180 = new int[][] {
{ROTATION_90, ROTATION_180, ROTATION_270},
{ROTATION_0, ROTATION_180, ROTATION_90, ROTATION_0},
{ROTATION_0, ROTATION_270, ROTATION_180, ROTATION_0},
{ROTATION_0, ROTATION_90, ROTATION_270, ROTATION_0},
};

当前屏幕旋转方向为ROTATION_0时,取int[][] threshold=THRESHOLDS_WITH_180[0];
当前屏幕旋转方向为ROTATION_90时,取int[][] threshold=THRESHOLDS_WITH_180[1];
当前屏幕旋转方向为ROTATION_270时,取int[][] threshold=THRESHOLDS_WITH_180[2];
当前屏幕旋转方向为ROTATION_180时,取int[][] threshold=THRESHOLDS_WITH_180[3];

其中,threshold中的每一个元素由两个值构成,用来表示一个范围。

WindowOrientationListener会注册一个Accelerator类型的SensorEventListener,当有新的SensorEvent产生时,调用filterOrientation产生一个int orientation值。这个值会在threshold的各个元素表示的范围中匹配,看会落在哪个范围。假设当前屏幕方向为ROTATION_0,那么threshold={{60, 165}, {165, 195}, {195, 300}},假设这个时候把屏幕左侧翻起90度。filterOrientation计算出的orientation值落在了第三个元素范围内,那么去ROTATE_TO_WITH_180中寻找与它对应的值,发现是ROTATION_270,那么就把当前屏幕旋转方向改变为270度。threshold的取值就变成了THRESHOLDS_WITH_180[2]。当把屏幕再次放平时,filterOrientation计算出的orientation值会落在第一个元素表示的范围内。去ROTATE_TO_WITH_180中寻找与它对应的值,发现是ROTATION_0,那么当前屏幕旋转方向被改变为0度。
还有一个变量比较重要,mAllow180Rotation,这个变量设置为false时,就不使用THRESHOLDS_WITH_180和ROTATE_TO_WITH_180这一对数组来做上面这些变的了,就使用THRESHOLDS和ROTATE_TO。
其实,我研究了半天也没有搞清filterOrientation的算法以及THRESHOLDS_WITH_180和THRESHOLDS这两个数组里面的每个数字代表的具体意义。最后只搞清了上面的这个流程,还有ROTATION_0, ROTATION_90, ROTATION_270, ROTATION_180这四个角度分别代表哪四个方向。但这足以应付我们要做的事情了。
比如,我想让屏幕最多只旋转90度和180度,不让它有旋转270度的机会。那就把ROTATE_TO_WITH_180里面的ROTATION_270全部变成90度。这样,应该旋转到270度时,就会旋转到90度了。如果不想让屏幕旋转,把所有值都改成ROTATION_0就可以了。

再深入挖掘一下这个话题
PhonwWindowManager是唯一实现WindowOrientationListener接口的类,它管理着整个设备界面的显示。当PhonwWindowManager通过WindowOrientationListener知道屏幕方向发生旋转时,会告诉WindowManagerService:
mWindowManager.setRotation(rotation, false, mFancyRotationAnimation);
而WindowManagerService得到这个通知后,会做两个比较重要的事情:
1、Surface.setOrientation(0, rotation, animFlags);
2、mRotationWatchers.get(i).onRotationChanged(rotation);
我们知道,每个Activity都有一个View树,每个View树都是绘画在一个Surface上面的。通过上面这两步,先把Surface给旋转了,再告诉Activity重新绘制View树,就完了整个屏幕的旋转。

Ⅳ 怎样设置手机屏幕旋转

手机屏幕旋转设置操作方法:

1、首先,我们打开我们的手机,然后我们点击设置;

Ⅵ 安卓设置中怎么没有屏幕旋转这个功能了

有的,方法如下:

  1. 点击系统设置

  2. 然后点击显示

Ⅶ 请问安卓手机在哪里设置重力感应啊(转屏)

你好,屏幕转屏和重力感应是没有牵连的,重力感应也不能设置,只能设置距离感应,距离感应就是你打电话时手机屏幕会自动黑掉,等你打完了,从耳朵边拿开的时候手机屏幕会自动亮起来,这个就是距离感应,你要设置转屏,设置—显示—屏幕自动旋转,去掉勾就可以了,如果手机游戏没有重力感应了,可能是那款游戏不支持,可以下载雷霆赛车来试试,如果还是不能使用重力感应,那就说明你手机坏了。

(7)安卓屏幕旋转怎么设置扩展阅读:

通过对力敏感的传感器,感受手机在变换姿势时,重心的变化,使手机光标变化位置从而实现选择的功能。

手机重力感应技术:利用压电效应实现,简单来说是是测量内部一片重物(重物和压电片做成一体)重力正交两个方向(x轴与y轴)的分力大小,来判定水平方向。

手机重力感应指的是手机内置重力摇杆芯片,支持摇晃切换所需的界面和功能,甩歌甩屏,翻转静音,甩动切换视频等,是一种非常具有使用乐趣的功能。

传感器是一种能把物理量或化学量转变成便于利用的电信号的器件。国际电工委员会(IEC:International Electrotechnical Committee)的定义为:“传感器是测量系统中的一种前置部件,它将输入变量转换成可供测量的信号”。按照Gopel等的说法是:“传感器是包括承载体和电路连接的敏感元件”,而“传感器系统则是组合有某种信息处理(模拟或数字)能力的系统”。传感器是传感系统的一个组成部分,它是被测量信号输入的第一道关口。 传感器把某种形式的能量转换成另一种形式的能量。

Ⅷ 手机屏幕自动旋转怎么设置

苹果手机怎么设置屏幕旋转?介绍一

苹果手机设置屏幕旋转,首先,打开苹果手机的屏幕,用手指从屏幕底部向上滑动,即可打开手机的控制中心。第二,是在控制中心的右上角的那个旋转按钮,就是要找的关闭屏幕旋转的 开关 。第三,点击这个按钮,当按钮高亮显示的时候,就说明我们已经关闭了手机屏幕旋转功能,而再点击一次,按钮变暗,说明自动转屏打开。通过呼出这个按钮,就可以轻松的设置苹果手机的屏幕旋转了。

苹果手机怎么设置屏幕旋转?介绍二

如果大家的苹果手机打开了这个功能,但是屏幕还是旋转不了,这是怎么回事呢?其实这个问题和苹果手机的硬件和系统都没有关系,是因为不小心选择了放 大显 示导致的,小伙伴们只需要到【设置】中取消放大显示,选择原来的标准显示,再打开屏幕旋转的功能,就可以实现自动转屏了。

苹果手机怎么设置屏幕旋转?介绍三

苹果手机设置屏幕旋转,还可以在苹果手机桌的通知状态栏,用手指向下滑动 打开通知中心,或者在“设置”中点击右上角屏幕旋转图标,出现提示“竖排方向锁定:关闭”,即代表屏幕锁定关闭,横放手机时屏幕会自动旋转。除此之外,还可以打开苹果手机设置,进入通用,在辅助功能中将AssistiveTouch这个功能打开。然后,苹果手机界面上会浮现出一个小方块,点下小方块进入设备,在更多里面点开多任务,用手指朝右划动,有一个带锁图标。第三,点击下,图标中锁没有了,这时苹果手机的屏幕就能够自动旋转调整画面了。

Ⅸ 安卓手机怎样才可以把屏幕上下倒过来,用什么软件,求高手指点

摘要 1.双指下拉顶帘,查找“屏幕旋转”图标,将其点绿即可开启,反之关闭。

热点内容
哈弗f7配置怎么使用 发布:2024-05-02 12:53:14 浏览:575
psv重新构建数据库 发布:2024-05-02 12:43:53 浏览:792
农行对公密码器的凭证号码在哪里 发布:2024-05-02 12:38:55 浏览:890
双子星脚本 发布:2024-05-02 12:26:01 浏览:142
域名如何将程序部署到服务器 发布:2024-05-02 12:25:38 浏览:948
命令行编译lex 发布:2024-05-02 12:17:25 浏览:61
linux读u盘 发布:2024-05-02 11:49:37 浏览:782
android图片点击全屏 发布:2024-05-02 11:48:55 浏览:432
androidmvc和 发布:2024-05-02 11:48:49 浏览:657
两位数密码要试多少次能试出来 发布:2024-05-02 11:30:59 浏览:689