android横竖屏和隐藏标题栏、状态栏总结

 1、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"
posted @ 2013-02-22 13:41  网络虫  阅读(1182)  评论(0编辑  收藏  举报