Android布局之横竖屏切换

在默认情况下当屏幕从竖评变到横屏时会触发 onConfigurationChanged 事 件 在默认情况下会重新加载画面并显示和横屏一样的画面,这样会有2个问题,

* 布局问题,在竖屏 显示的布局 到横屏中由于宽和高发生了变化所有多少 都会影响到布局(除非你定制2套画面在然后加个判断在横屏时怎么显示,在竖 屏时怎么显示),当然最简单的办法就是在 项目的AndroidManifest.xml中找到 你所指定的activity 中加上

o 只竖屏显示的话(android:screenOrientation="portrait")

o 只横屏显示的话(android:screenOrientation="landscape")

* 画面重新载入问题:在默认情况下横竖 切换时会重新载入画面,导致一些 不必要的资源浪费,更严重的是画面上保持的数据(特别是游戏方面)也都被重 置了(当然你可以在重置前保存这些数据到数据库或者到文本文件中),要怎么 避免在横竖 切换时重新载入画面,

o 首先要在 AndroidManifest.xml中找到你所指定的activity 中加上 android:configChanges="orientation|keyboardHidden"

o 然后 在activity的逻辑处理中(代码部分)去重载onConfigurationChanged 事件,具体代码参考一下:

+ @Override
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
}

在onConfigurationChanged中判断要显示的是横屏还是竖屏然后在 setcontentview

还有种方法

在res文件夹下分别建立layout-port和layout-land,放竖屏和横屏的布局文 件(同名的),会自动调用的。

以上就可以简单的控制你的app画面的显示方式并且在显示方式不变的情况下 横竖 屏切换时不会重新加载画面,即优化的你的app同时用户体验也相应提高了 。

来源: http://blog.csdn.net/muyu114/archive/2011/04/20/6334875.aspx

时间: 2024-11-05 04:49:56

Android布局之横竖屏切换的相关文章

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

本文实例讲述了Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法.分享给大家供大家参考,具体如下: 首先在Mainifest.xml的Activity元素中加入android:configChanges="orientation|keyboardHidden"属性 <activityandroid:name=".FileBrowser"android:label="@string/app_name"android:

android中Activity横竖屏切换的那些事

讲解之前需要说明的是 旋转屏幕:在系统的自动旋转屏幕开启的情况下,我们旋转屏幕 手动设置屏幕:我们自己去调用Activity的 setRequestedOrientation 方法. 设置屏幕的方向 简介 值 描述 unspecified 默认值.系统自动选择屏幕方向 behind 跟activity堆栈中的下面一个activity的方向一致 landscape 横屏方向,显示的宽比高长 portrait 竖屏方向,显示的高比宽长 sensor 由设备的物理方向传感器决定,如果用户旋转设备,这屏

android:configChanges 屏幕横竖屏切换

出处:http://blog.csdn.net/djy1992/article/details/9378195 --->  android:screenOrientation="portrait" 当在AndroidManifest.xml文件中定义了android:screenOrientation="portrait",就表示当我们切换横竖屏的时候,屏幕的内容始终以竖屏显示,而不会根据屏幕的方向来显示内容 AndroidManifest.xml文件   &

解决Android手机屏幕横竖屏切换

Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载(说明当前的Activity给销毁了,但又重新执行加载), 怎么使屏幕横竖屏切换时,当前的Activity不销毁呢? 1. 在AndroidManifest.xml中为Activity设置configChanges属性, application android:icon="@drawable/icon" android:label="@string/app_name"> <activ

android实现在横竖屏切换时页面信息不被重置的示例分享_Android

当屏幕转动切换的时候 Android 机制是:销毁当前屏幕的 Activity ,然后重新开启一个新的适应屏幕改变的 Activity .那么,我们该如何在屏幕切换的时候页面信息不被重置呢? 解决实现:1.在 AnroidMainifest.xml 的 activity 元素中加入: 复制代码 代码如下: android:configChanges="orientation|keyboardHidden" 或 复制代码 代码如下: android:configChanges="

Android Activity 横竖屏切换的生命周期_Android

前言 在开发中常要处理横竖屏切换,怎么处理先看生命周期 申明 Activity 横竖屏切换时需要回调两个函数 ,所以在此将这个两个函数暂时看成是Activity 横竖屏切换的生命周期的一部分,这两个函数如下 onSaveInstanceState(Bundle outState) :Activity 即将销毁时保存数据 onRestoreInstanceState(Bundle savedInstanceState) : Activity 重建或者恢复时候取出数据 横竖屏切换生命周期 1.启动程

关于Android横竖屏切换及Activity重启周期的总结

禁止Android横竖屏和解决切换屏幕时重启Activity的方法 1.在AndroidManifest.xml的Activity配置中加入 android:screenOrientation="landscape"属性(landscape是横向,portrait是纵向).如: <activity android:name=".ContactsManagerActivity" android:label="@string/app_name"

横竖屏切换-android app启动时根据是手机端还是Pad端进行横竖屏判断,以及不同布局

问题描述 android app启动时根据是手机端还是Pad端进行横竖屏判断,以及不同布局 如何判断一个app,如果运行在平板上,就横屏展示,如果运行在手机上就竖屏展示.而且在这两个端不允许横竖屏切换.而且MainActivity得长的不一样.意思就是要有两套布局.需要建什么资源文件夹 解决方案 http://jingyan.baidu.com/article/455a9950aa8aaea16627788a.html

横竖屏 切换-Android横竖屏切换有什么差别呢?

问题描述 Android横竖屏切换有什么差别呢? 个人感觉Android的横竖屏切换是因为重力的感应,之后软件的布局会改变, 但是横竖屏切换的具体差别是什么? 解决方案 页面:页面会重新加载,只要你的布局不是绝对.写死的,通常会自动适应,一般不会出现大问题. 数据:安卓内置的bundle会帮你保存一些系统认为比较重要的数据,还有一些数据是可能会丢失,需要你自己手动保存(具体查看onSaveInstance()等方法) 解决方案二: 页面会重新加载的,因为如果你不在Mainfest.xml文件中配