Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法

 更新时间:2015年11月06日 12:11:28   作者:Jlins  
这篇文章主要介绍了Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法,涉及Android属性设置及activity操作的相关技巧,需要的朋友可以参考下

本文实例讲述了Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法。分享给大家供大家参考,具体如下:

首先在Mainifest.xml的Activity元素中加入android:configChanges="orientation|keyboardHidden"属性

<activityandroid:name=".FileBrowser"android:label="@string/app_name"android:configChanges="orientation|keyboardHidden">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

加入这条属性的含义是,应用程序将会处理屏幕方向和键盘状态(推出或合上)信息的改动。但对于其他的设备配置信息的改动则会由Android系统来处理(销毁当前Activity,然后重启一个新的Activity实例)。

那么,现在还需要在java代码的activity子类中加入配置信息改动的处理代码。这个也很简单

/**
* onConfigurationChanged
* the package:android.content.res.Configuration.
* @param newConfig, The new device configuration.
* 当设备配置信息有改动(比如屏幕方向的改变,实体键盘的推开或合上等)时,
* 并且如果此时有activity正在运行,系统会调用这个函数。
* 注意:onConfigurationChanged只会监测应用程序在AnroidMainifest.xml中通过
* android:configChanges="xxxx"指定的配置类型的改动;
* 而对于其他配置的更改,则系统会onDestroy()当前Activity,然后重启一个新的Activity实例。
*/
@Override publicvoid onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig); // 检测屏幕的方向:纵向或横向
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
//当前为横屏, 在此处添加额外的处理代码
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
//当前为竖屏, 在此处添加额外的处理代码
}
//检测实体键盘的状态:推出或者合上
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO){
//实体键盘处于推出状态,在此处添加额外的处理代码
} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES){
//实体键盘处于合上状态,在此处添加额外的处理代码
}
}

别忘了在java文件中加上

复制代码 代码如下:
import android.content.res.Configuration

这样就OK了,屏幕方向改变时,应用程序的显示界面也会随着改动,而不是被销毁!

Activity中还有一属性和屏幕方向有关:

复制代码 代码如下:
<activity . . . android:screenOrientation=["unspecified" | "user" | "behind" | "landscape" | "portrait" | "sensor" | "nosensor"] . . . </activity>

比如,在Mainifest.xml的Activity元素中增加这么一个属性:
复制代码 代码如下:
android:screenOrientation="portrait"

则无论手机如何变动,拥有这个属性的activity都将是竖屏显示。
复制代码 代码如下:
android:screenOrientation="landscape"
为横屏显示。
这里提一个小知识,Anroid模拟器中,快捷键"ctrl+F11"可以实现转屏。

希望本文所述对大家Android程序设计有所帮助。

相关文章

  • Android实现原生分享功能

    Android实现原生分享功能

    这篇文章主要介绍了Android实现原生分享功能,只能分享文字和图片,不能单独分享图片或者文字,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android仿手机通讯录地址选择功能

    Android仿手机通讯录地址选择功能

    这篇文章主要为大家详细介绍了Android仿手机通讯录地址选择功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Android实现仿微信tab高亮icon粘着手的滑动效果

    Android实现仿微信tab高亮icon粘着手的滑动效果

    这篇文章主要为大家详细介绍了Android实现仿微信tab高亮icon粘着手的滑动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Android实现手机震动效果

    Android实现手机震动效果

    这篇文章主要为大家详细介绍了Android实现手机震动效果的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Listview的异步加载性能优化

    Listview的异步加载性能优化

    Android中ListView是使用平率最高的控件之一(GridView跟ListView是兄弟,都是继承AbsListView),ListView优化最有效的无非就是采用ViewHolder来减少频繁的对view查询和更新,缓存图片加快解码,减小图片尺寸
    2016-01-01
  • Android绘制圆形百分比加载圈效果

    Android绘制圆形百分比加载圈效果

    这篇文章主要为大家详细介绍了Android绘制圆形百分比加载圈效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Android刮刮卡实现原理与代码讲解

    Android刮刮卡实现原理与代码讲解

    这篇文章主要为大家详细介绍了Android刮刮卡实现原理、实现原理步骤以及代码讲解,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • Android录音并且输出为Mp4文件的方法教程

    Android录音并且输出为Mp4文件的方法教程

    这篇文章主要给大家介绍了关于Android录音并且输出为Mp4文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • Android 数据压缩浅析

    Android 数据压缩浅析

    这篇文章主要为大家介绍了Android 数据压缩方法浅析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android自定义Dialog内部透明、外部遮罩效果

    Android自定义Dialog内部透明、外部遮罩效果

    这篇文章主要为大家详细介绍了Android自定义Dialog内部透明、外部遮罩效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10

最新评论