Android中关于横竖屏问题

一、屏幕的方向可以在AndroidManifest.xml文件中通过设置screenOrientation属性来实现, screenOrientation用来指定Activity的在设备上显示的方向,每个值代表如下含义:


"unspecified"


默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.


"landscape"


横屏显示(宽比高要长)


"portrait"


竖屏显示(高比宽要长)


"user"


用户当前首选的方向


"behind"


和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)


"sensor"


有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。


"nosensor"


忽略物理感应器,这样就不会随着用户旋转设备而更改了 ( "unspecified"设置除外 )。

二、旋转屏幕调用onCreate()方法:

解决办法:

在AndroidManifest.xml文件中对activity指定android:configChanges="keyboardHidden|orientation|screenSize"属性,转屏的时候就会不再重新调用OnCreate()函数,而是调用onConfigurationChanged()。

注:如果开发API等级等于或高于13,screenSize必须设置,因为screenSize会在屏幕旋转时改变

三、监听屏幕旋转事件,针对屏幕方向做一些操作:

重写onConfigurationChanged(Configuration newConfig)方法

 @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
            //横屏时需要做的处理
            Log.i("屏幕方向","横屏");
        }else{
            //竖屏时需要做的处理
            Log.i("屏幕方向","竖屏");
        }
    }
时间: 2024-11-13 06:32:37

Android中关于横竖屏问题的相关文章

Android应用:横竖屏切换总结

眨眼间,已经到了2016你年春节前,离上一篇博客的时间已经有6个月多,回想起这半年的种种,不得不说,学习和工作实在是太忙了,或许这就是程序员的真实写照吧. 写博客之初,主要的目的还是为了把自己的学习痕迹记录下来,写的东西比较基础,也不多,算是一种督促,希望能坚持地学习下去,因为学识不存在暴发户,靠的是积累.如果对自己过去半年的学习给个评价,我还是比较满意的,前期定下来的目标都基本都达到了.单凭这个,我就觉得今年的新年会是个好年. 说完过去,那么接着就是将来.因为现在的工作环境上外网不大方便,而且

Android中左右滑屏实现

在网上搜索了下滑屏的实现,自己整理了下, 代码如下: package kexc.scroll; import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.view.VelocityTracker;import android.view.View;import android.view.V

Android视频播放和横竖屏切换

最近做了一个项目,里面用到了视频播放这一块,当时想考虑Vitamio,demo也做了出来,但是后来发现它是商业收费的,并且收费相当可观,所以只能放弃了.然后找到了ijkPlayer,功能也很强大,最终选择了Wei_Leng基于ijkPlayer开发的superPlayer,在这里也要感谢一下这位无私的博主,贴下他的链接superPlayer 但是因为我的布局稍微有点复杂,在切换横屏的时候,并不能完美实现,后来又参考了一位博主的文章,这里也贴一下:视频播放横竖屏切换 好了,废话不多说了,先上效果图

Android中设置全屏的方法

在实际的应用程序开发中,我们有时需要把 Activity 设置成全屏显示,一般情况下,可以通过两种方式来设置全屏显示效果.其一,通过在代码中可以设置,其二,通过manifest配置文件来设置全屏. 其一:在代码中设置(如下) public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置无标题 requestWindowFeature(Window.FEATURE_NO_TITL

Android中的全屏

全屏一般有两种方法,第一种是在festxml文件中配置: 也就是给activity节点加上android:theme="@android:style/Theme.NoTitleBar.Fullscreen": <activity android:name="com.howlaa.girlsos.FirstActivity" android:label="@string/app_name" android:theme="@andro

Android中实现全屏、无标题栏的两种办法

在进行UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏.要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置. 1.在xml文件中进行配置 在项目的清单文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可. 实现全屏效果: android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 实现无标题栏(但有系统自带的任务栏): androi

如何在Android中实现全屏,去掉标题栏效果

在进行Android UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏.要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置.   1.在xml文件中进行配置   在项目的清单文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可.   实现全屏效果: android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 实现无标题栏(但有系统自

Android 面试之横竖屏切换的Activity生命周期

public class EngineerJspActivity extends Activity { private static String Tag = "EngineerJspActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(Tag, "onCreate()"); setCont

android的Activity横竖屏切换时的生命周期

OnCreate()->OnStart->OnResume()->onPause()->onDestory->OnCreate()->OnStart->OnResume() 想要避免这种情况:要在manifest文件里面配置onconfigChanged属性 OnCreate:对象创建完毕,但此时不可见 OnStart: Activity在屏幕可见,但是此时没有焦点 OnResume:Activity在屏幕可见,并且获得焦点 onPause:Activity在屏幕