android横竖屏和隐藏标题栏、状态栏总结
1、android横竖屏
Android手机有两种手持方式,通俗的说,就是横着拿和竖着拿。那么在Android系统中,如何识别是哪种手持方式来决定屏幕的布局呢?
可以通过java代码实现:
//设置为横屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
// 设置为竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
也可以通过xml实现:
//在配置文件中,设为横
android:screenOrientation="landscape"
//在配置文件中,设为竖屏
android:screenOrientation="portrait"
或者通过在res下建立固定的目录来让系统自己挑选横屏或者竖屏显示
在res目录下建立layout-land和layout-port目录,相应的layout文件不变,比如main.xml。layout-land是横屏的layout,layout-port是竖屏的layout,其他的不用管模拟器自动寻找
2、android隐藏标题栏、状态栏
Android手机有两种手持方式,通俗的说,就是横着拿和竖着拿。那么在Android系统中,如何识别是哪种手持方式来决定屏幕的布局呢?
在程序的res目录下有一个layout目录,也就是res/layout/,有关于布局的东西在这里面描述。如果是竖着拿,那么会自动寻找res /layout-port(port意即portrait)目录作为缺省布局,如果是横着拿,那么会用res/layout-land(land意即 landscape)目录作为缺省布局。这样,就可以为两种屏幕尺寸定义不同的布局方式了。
如果在res目录下,既有layout,也有layout-port、layout-land,那么在横着用的时候,会用哪个捏,是layout-land。如果layou-land没有,才会使用layout。
针对不同的屏幕尺寸,除了在布局上会有不同之外,在操作上也可能会用不同,那么在操作时如何识别两种尺寸捏?可以通过这个方法来判断屏幕的方向:Context.getResources().getConfiguration().orientation
可能的值有:
- Configuration.ORIENTATION_PORTRAIT 也就是竖着
- Configuration.ORIENTATION_LANDSCAPE 也就是横着
- Configuration.ORIENTATION_SQUARE 方的?不清楚
- Configuration.ORIENTATION_UNDEFINED
可以通过java代码实现:
//设置为横屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
// 设置为竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
也可以通过xml实现:
//在配置文件中,设为横
android:screenOrientation="landscape"
//在配置文件中,设为竖屏
android:screenOrientation="portrait"
或者通过在res下建立固定的目录来让系统自己挑选横屏或者竖屏显示
在res目录下建立layout-land和layout-port目录,相应的layout文件不变,比如main.xml。layout-land是横屏的layout,layout-port是竖屏的layout,其他的不用管模拟器自动寻找
2、android隐藏标题栏、状态栏
一、隐藏标题栏
//隐藏标题栏
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
二、隐藏状态栏
//隐藏状态栏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
三、去掉所有Activity界面的标题栏
修改AndroidManifest.xml
在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
四、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifest.xml
在application 标签中添加
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"