`

Android Activity始终横屏、全屏、屏幕方向改变等屏幕相关

 
阅读更多

android手机屏幕方向改变的时可以使应用程序随之相应改变,这里就简单介绍屏幕操作中的一点小技巧。包括始终横(竖)屏、全屏、屏幕方向改变时销毁Activity的问题。

 

1、屏幕始终横屏或竖屏

对于一些游戏,可能我们希望屏幕始终横屏,这时只需要在AndroidManifest.xml中对Activity属性进行设置

android:screenOrientation="landscape"表示始终横屏,

android:screenOrientation="portrait"表示始终竖屏,下面是始终横屏的例子

<activity android:name="ViewStatusDetailActivity"
	android:screenOrientation="landscape"
        android:label="@string/app_name">
        </activity>

android:screenOrientation的其他值见screenOrientation

 

2、Activity全屏

两种配置方式,

一种是在AndroidManifest.xml中对Activity属性进行设置,如下:

<activity android:name="ViewStatusDetailActivity"
	android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
	android:label="@string/app_name">
    </activity>

 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"表示全屏该Activity

 

第二种是在代码中进行设置

public void onCreate(Bundle savedInstanceState) { 
	super.onCreate(savedInstanceState); 
	//无title   
	requestWindowFeature(Window.FEATURE_NO_TITLE);   
	//全屏   
	getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,     
		WindowManager.LayoutParams. FLAG_FULLSCREEN);          
	setContentView(R.layout.main); 
	} 
} 

 其中requestWindowFeature和getWindow().setFlags必须一起使用,并且在setContentView前面

 

 

3、解决屏幕方向改变Activity销毁重建问题

当屏幕方向改变时,经常发现刚输入的文字被清空了、imageView图片不存在了,或是网络数据重新获取,其实是Activity会被销毁,重新调用OnCreate构建,如何防止这种情况呢,分为两步:

3.1 在AndroidManifest.xml中对Activity属性进行设置,如下:

<activity android:name="ViewStatusActivity"
                  android:configChanges="orientation|keyboardHidden"
                  android:label="@string/app_name"
                  android:theme ="@style/update_status_style">
        </activity>

android:configChanges="orientation|keyboardHidden"表示改变界面方向和隐藏键盘

具体android:configChanges见configChanges

 

 

3.2 重载onConfigurationChanged方法,此方法会在屏幕方向改变时被调用如下:

    @Override
    public void onConfigurationChanged(Configuration newConfig) {

        super.onConfigurationChanged(newConfig);

        if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
            // 加入横屏要处理的代码
        } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
            // 加入竖屏要处理的代码
        }
    }

 

参考:http://ghostfromheaven.iteye.com/blog/967629

 

 

 

分享到:
评论
2 楼 Trinea 2012-07-31  
yhh730 写道
为什么我设置了android:configChanges="orientation|keyboardHidden"  不起作用了,还是走onCreate(),而且转屏时也不调用onConfigurationChanged()方法

这样设置并且重写onConfigurationChanged方法后应该就可以了,你可以看下sdk的介绍http://developer.android.com/reference/android/app/Activity.html#ConfigurationChanges
1 楼 yhh730 2012-07-31  
为什么我设置了android:configChanges="orientation|keyboardHidden"  不起作用了,还是走onCreate(),而且转屏时也不调用onConfigurationChanged()方法

相关推荐

    android Activity始终横屏、全屏、屏幕方向改变等屏幕相关.doc

    本篇文章将深入探讨如何控制Android Activity的屏幕方向,实现始终横屏、全屏显示以及如何处理屏幕方向改变时Activity的销毁与重建问题。 1. **屏幕始终横屏或竖屏** 在AndroidManifest.xml中,我们可以为特定的...

    android 手机强制横竖屏

    在Android操作系统中,开发者可以为应用设置特定的屏幕方向,让用户在特定场景下强制使用横屏或竖屏模式。这通常涉及到Android系统提供的布局管理、传感器管理和Activity配置更改等相关知识。下面将详细介绍如何实现...

    Android横屏全屏视频播放,日历控件应用

    在Android开发中,实现横屏全屏视频播放和日历控件的应用是常见的需求,尤其在多媒体应用或者日程管理类应用中。本教程将详细讲解如何实现这些功能。 一、Android横屏全屏视频播放 1. **VideoView与SurfaceView**...

    Android 之 手机全屏显示

    3. **处理屏幕旋转**:如果希望应用在横屏和竖屏下都保持全屏,需要考虑屏幕旋转的情况。在AndroidManifest.xml中,可以为Activity指定`android:configChanges="orientation|screenSize"`,然后在Activity中处理屏幕...

    android 在listView 中播放视频,支持全屏,横竖屏切换在同一个 activity 中实现,类似腾讯新闻

    实现在 listView中播放视频,利用 mediaPlayer + textureView 实现,支持横竖屏切换,切换操作是在同一个 activity 中进行的,类似腾讯新闻的视频播放, 实现思路可以看下我的博客: ...

    Android 学习笔记——旋转模拟器方向,全屏,窗口生命周期

    Android设备支持横屏和竖屏两种模式,开发者需要确保应用在不同方向下都能正常运行。在Android Studio的模拟器中,你可以通过顶部菜单栏选择“旋转”图标或者使用快捷键`Ctrl + F12`来切换屏幕方向。此外,你还可以...

    Android基础教程(六)之-Android中两种设置全屏的方法!!!

    ### Android基础教程(六)之-Android中两种设置全屏的方法 #### 一、通过代码设置全屏 在Android开发过程中,有时我们需要让应用程序或某个Activity以全屏模式显示,这样可以提供更好的用户体验或者满足某些特定...

    【原创】Android锁定横竖屏、splash,全屏、去除标题的方法

    在Android应用开发中,屏幕方向控制、启动页(Splash Screen)设计、全屏显示以及去除标题栏的操作是常见的需求,这些都可以提升用户体验并使应用更具专业性。下面将详细讲解如何实现这些功能。 1. **锁定横竖屏** ...

    Android中WebView播放网上视频,横竖屏切换

    4. **考虑全屏模式**:如果需要在横屏时全屏显示视频,可以监听WebView的JavaScript事件,通过`WebChromeClient`的`onShowCustomView()`和`onHideCustomView()`方法来控制全屏和退出全屏。 以上就是如何在Android的...

    强制横屏代码

    屏幕方向控制是Android应用开发中一个常见且关键的部分,它直接影响到用户界面(UI)的展示效果,尤其在游戏、视频播放等应用场景下,横屏模式往往能提供更佳的用户体验。 ### 强制横屏的意义 强制横屏是指在应用...

    android屏幕控制

    默认情况下,Android会在屏幕方向改变时销毁并重新创建Activity。为了避免这种情况,我们可以在`AndroidManifest.xml`中指定Activity处理方向变化,而不让系统自动处理: ```xml &lt;activity android:name=".Your...

    Android自定义程序名称、图标、全屏和可旋转方向

    在Android应用开发中,开发者有时需要对应用进行个性化定制,比如改变程序的名称、图标,以及设置应用支持的屏幕方向。这个压缩包文件提供了一个关于如何实现这些自定义功能的实例,适合初学者或者需要此类功能的...

    Android强制设定横屏时,SurfaceView一直黑屏

    在对应的Activity标签中,设置`android:screenOrientation="nosensor"`,这表示忽略设备的物理感应器,使得Activity不会随设备旋转而自动改变方向。同时,添加`android:configChanges="orientation|keyboardHidden|...

    Android中Activity常用功能设置小结(包括全屏、横竖屏等)

    2. **代码动态设置**:在运行时改变Activity的屏幕方向: ```java setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // 横屏 或 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION...

    Android中关于自定义相机预览界面拉伸问题

    在Android开发中,自定义相机预览界面的拉伸问题是一个常见的挑战,尤其是在处理不同设备和屏幕方向变化时。本文将深入探讨这个问题,并提供解决方案。 首先,理解问题的根本原因至关重要。当我们在Android应用中...

    安卓视频播放悬浮全屏竖屏切换技术

    如果当前是横屏模式,可以调整VideoView的宽度和高度为屏幕尺寸,并设置其填充父布局以占据整个屏幕。反之,在竖屏模式下,恢复原来的布局参数。同时,注意调整Activity的屏幕方向,可以使用setRequestedOrientation...

    解决Android 10 全面屏底部小横条NavigationDemo.zip

    在Android 10系统中,全面屏设备普遍引入了底部的小横条,即NavigationBar,作为系统导航栏。这个小横条包含返回、主页和多任务等操作,为用户提供了一种全新的交互方式。然而,对于开发者来说,这可能会对应用的...

    android 横竖屏限制的配置方法

    值得注意的是,一旦设置了`android:screenOrientation`,Activity在屏幕方向变化时将不会被销毁并重建,这有助于保持用户的当前状态。然而,如果需要在横竖屏切换时更新界面布局或重新加载数据,可以重写`...

Global site tag (gtag.js) - Google Analytics