- 浏览: 3466176 次
- 性别:
- 来自: China
文章分类
- 全部博客 (536)
- ajax (1)
- Algorithm (14)
- Android (40)
- CSS/HTML... (2)
- defy (3)
- DesignPattern (2)
- dorado (0)
- Drools (6)
- English/日本語 (7)
- Flex (2)
- Framework (0)
- Google (3)
- hibernate (13)
- homework (3)
- HTML5 (0)
- IDE (29)
- java (45)
- javaee (7)
- Javascript (14)
- java组件 (5)
- jQuery (4)
- jsp (8)
- jsf (2)
- Linux (2)
- lucene (0)
- mysql (6)
- news (3)
- Oracle (8)
- other (4)
- PHP (5)
- Python (0)
- Software Engineering (3)
- spring (7)
- struts1.x (14)
- struts2.x (14)
- strolling in cloud (1)
- subject:javaEnhance (20)
- Tomcat (7)
- validator (3)
- 学习·方法·心得 (8)
- .NET (2)
- vba (6)
- groovy (5)
- grails (2)
- SWT (0)
- big data (1)
- perl (1)
- objective-c (50)
- product (1)
- mac (7)
- ios (188)
- ios-phone (2)
- ios-system (15)
- ios-network (5)
- ios-file (4)
- ios-db (1)
- ios-media (3)
- ios-ui (27)
- ios-openSource (6)
- ios-animation (5)
- ios-drawing (7)
- c (2)
- ios-app (2)
- ios-course (15)
- ios-runtime (14)
- ios-code (8)
- ios-thread (8)
- ios-LBS (2)
- ios-issue (1)
- ios-design (2)
- Jailbreak (2)
- cocos2d (0)
- swift (16)
- ios-framework (4)
- apple watch (4)
- ios-web (1)
- react native (3)
- TVOS (1)
- OpenGL (1)
最新评论
-
xiaobinggg:
...
Session机制详解 -
菜鸟学生会:
Drools规则工作流引擎开发教程网盘地址:http://pa ...
Drools入门-----------环境搭建,分析Helloworld -
wangyudong:
不是很好用,不支持自动化测试RESTful API,也不支持自 ...
Simple REST Client POST使用方法 -
Paul0523:
很棒的一篇文章,感谢楼主分享
Session机制详解 -
啸笑天:
获取原型对象的三种方法<script>functi ...
复习JavaScript面向对象技术
首先在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"可以实现转屏。
感谢:http://hi.baidu.com/augustus_blog/blog/item/f41ab089462a6c0ac8fc7a04.html
发表评论
-
Android 桌面部件
2011-07-06 19:26 1873桌面部件是一种利用AppWidget框架将应用程序的某个部件放 ... -
Android 实时文件夹
2011-07-06 15:38 2859实时文件夹是一种用来显示由某个ContentProvider提 ... -
android 添加桌面快捷方式
2011-07-05 19:20 13290、在桌面创建快捷方式方法: 方法一:通过长按某一个应用程序的 ... -
Android权限详解
2011-07-04 09:43 2240在Android的设计中,资源的访问或者网络连接,要得到这 ... -
Android权限注解
2011-07-04 09:33 3487Android应用程序在使用很多功能的时候必须在Mainife ... -
ListView使用SimpleAdapter加载网络图片
2011-07-02 19:14 7713ListView是一种常见的布局,通过SimpleAdapte ... -
android:layout_gravity 和 android:gravity 的区别
2011-07-02 19:00 2102gravity 这个英文单词是重心的意思,在这里就表示 ... -
onSaveInstanceState和onRestoreInstanceState触发的时机
2011-07-02 17:49 2881当某个activity变得“容易”被系统销毁时,该ac ... -
strings.xml文件中提供占位符来格式化数据
2011-07-01 16:16 3233有些朋友可能会动态的修改Android中strings. ... -
ANDROID开机动画分析
2011-05-25 15:40 5928Android 2.0 开机动画文件分析。开机动画文件:boo ... -
Android专栏地址,真的不错啊!!!
2011-05-22 20:22 1656第三极: http://disanji.net/cate ... -
A1200入门DIY
2011-05-22 11:40 0A1200入门DIY 2007-04-16 19:33 ... -
android用户界面数据绑定
2011-05-19 21:25 5281当我们想用合适的方式显示并操作一些数据(如数组,链表,数据库等 ... -
emulator: ERROR: the user data image is used by another emulator. aborting
2011-05-19 13:48 2354今天早上起床,运行项目时报错:Error the use ... -
Android Map demo
2011-04-23 22:24 3397AndroidManifest.xml <?xm ... -
Android Map申请key
2011-04-23 22:02 31221. 首先先要获取你的debug keystore位置 ... -
conversion to dalvik format failed with error 1
2011-04-23 21:52 3472android低版本工程(如1.5)放到高版本环境中(如2.2 ... -
Android GPS基础
2011-04-20 22:14 2782package org.example.locationtes ... -
Android API:Activity.managedQuery()
2011-04-20 19:22 2628描述: 获取一个包含指定数据的 Cursor 对 ... -
Android与Internet(获取资源,多线程断点下载,get/post发送,发送xml)
2011-04-07 20:13 6862从Internet获取数据 利用HttpURLConn ...
相关推荐
本文实例讲述了Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法。分享给大家供大家参考,具体如下: 首先在Mainifest.xml的Activity元素中加入android:configChanges=”orientation|keyboardHidden...
5. **防止Activity销毁**:除了在AndroidManifest.xml中声明处理配置变更,还可以使用`Activity.recreate()`手动触发Activity的销毁和重建,但这并不推荐用于处理横竖屏切换,因为它可能导致数据丢失。 6. **优化...
需要注意的是,让 Android 横竖屏切换时不销毁当前的 Activity,并不意味着我们可以完全忽视屏幕方向的改变。我们仍然需要在 Java 代码中加入配置信息改动的处理代码,以便正确处理屏幕方向的改变。 另外,Activity...
- **性能优化**:避免在`onCreate()`和`onStart()`中执行过多的初始化操作,因为这些方法在横竖屏切换时会被频繁调用。 - **布局适配**:为横屏和竖屏设计不同的布局资源,通过在res/layout目录下创建对应的layout-...
如果不想在屏幕旋转时销毁并重建Activity,可以覆写`onConfigurationChanged()`方法,并在AndroidManifest.xml中为Activity添加`configChanges="orientation|screenSize"`,这样系统就不会默认销毁Activity,而是...
在处理视频播放时,特别是涉及横竖屏切换和屏幕适配时,开发者需要考虑多个关键点以确保良好的用户体验。 首先,SurfaceView在横竖屏切换时的处理至关重要。当设备旋转时,Android系统会销毁当前的Activity并重新...
3. 设置Activity配置变更处理:在AndroidManifest.xml中,可以为对应的Activity设置`android:configChanges="orientation|screenSize"`属性,使得Activity在屏幕方向改变时不销毁重建,而是调用...
注意,hide()和show()并不销毁Fragment,只是控制它们在界面上的可见性。 在Android Pad上,横竖屏切换是一个常见的需求。默认情况下,当设备旋转时,系统会重新创建Activity和其中的所有Fragment,导致数据丢失。...
在Android开发中,横竖屏切换是一个常见的需求,尤其对于那些需要根据屏幕方向提供不同界面布局的应用来说。本文将深入探讨Android系统中的横竖屏切换机制,并通过"OrientationSwitchDemo"这个示例代码来帮助理解。 ...
设置`android:configChanges="orientation"`或`android:configChanges="screenOrientation"`,当屏幕方向改变时,系统会调用`onConfigurationChanged(Configuration newConfig)`方法,让你在不销毁Activity的情况下...
- 避免不必要的重建:如果App的横竖屏切换不影响用户体验,可以在AndroidManifest.xml中禁止屏幕方向的自动切换。 - 使用Fragment:Fragment可以在Activity重建时保持其状态,减少数据丢失的风险。 - 调整UI设计...
在Android开发中,当应用程序的Activity在横竖屏之间切换时,系统默认行为是销毁当前Activity并重建,以便更新布局适应新的屏幕方向。这会导致`onCreate()`方法被再次调用,可能会造成用户体验上的中断。然而,有些...
在Android开发中,横竖屏切换是常见的场景,它涉及到应用程序界面布局的适应性和用户体验。这份"Android横竖屏切换处理Demo源码"提供了一个很好的学习示例,帮助开发者理解和处理这一问题。以下是对这个Demo源码中...
在Android系统中,设备屏幕方向的改变会导致Activity被销毁并重新创建,这是因为默认情况下,Android将横竖屏切换视为配置更改。开发者可以通过在AndroidManifest.xml中对特定Activity设置`android:configChanges=...
这样,当横竖屏切换时,系统不会销毁Activity,而是调用这个方法。 - 使用`setRetainInstance(true)`方法来保留Fragment实例。在Fragment的生命周期中,当Activity重建时,只有Fragment的状态会保留,但请注意,这...
1. **配置变更(Configuration Changes)**:横竖屏切换是Android系统中的一个配置变更,系统默认会销毁并重新创建Activity以适应新的屏幕方向。这可能导致性能开销,特别是当应用有复杂状态时。 2. **配置变更的...
在Android平台上开发一款支持横竖屏切换的视频播放器是一项常见的任务,这涉及到对Android多媒体框架的深入理解和屏幕适配策略。"Android视频播放器(支持横竖屏切换)"这个项目的核心目标是创建一个能够根据设备...
在Android开发中,横竖屏切换是一个常见的需求,它涉及到屏幕方向变化时应用程序的处理方式。本Demo旨在演示如何在Android应用中实现横竖屏的切换,并妥善处理屏幕旋转带来的影响。下面将详细介绍这个主题。 1. **...
1. 使用`android:configChanges="orientation|screenSize"`属性,在AndroidManifest.xml中指定Activity对横竖屏变化的处理方式,让系统不再默认销毁Activity。 2. 在Activity中重写`onConfigurationChanged...