android 关于屏幕的设置(FullScreen、notitle)等等

本来不打算写这篇文章的,但是今天一个问题搞得我也是醉了、所以才打算把屏幕的一些相关知识罗列出来,方便自己以后使用。

要设置屏幕不显示标题一般我们都会在application中设置:

android:theme="@android:style/Theme.Light.NoTitleBar"

但是这个存在一个问题,就是主题太老,太丑,不能切换成其他新版本的主题样式。

所以我们一般 会写一个activity的父类,将一些公共的东西写在里面,包含对样式的设置:

一般会在oncreate中加上以下这段代码来设置没有标题栏

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    Window window = this.getWindow();
    window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    this.app = (LoaderApp) this.getApplication();
}
设好之后是完全可以满足我们的需求的。

但是今天早上,我们总监发现一个问题,就是在程序启动的第一个页面会有标题栏闪一下再消失的现象,建议我使用notitleBar的主题,开始也没多想,直接使用了,用了之后发现真他么的丑,丑到爆了,不能忍,得想办法既要无标题,也要是之前使用的theme,开始是想自定义theme的,后来发现一点难度,然后又想在application(java继承的application)中设置,发现根本没有window,废话,肯定没有,考虑了很久,尼玛发现我完全可以给启动页设置一个notitlebar的theme,整个application设置一个theme,妈的改好之后完全可行,也是泪流满面,想多了开始。下面再放上一些跟屏幕相关的东西:

获取屏幕宽度

WindowManager wm = (WindowManager) getContext()
                    .getSystemService(Context.WINDOW_SERVICE);
 
     int width = wm.getDefaultDisplay().getWidth();
     int height = wm.getDefaultDisplay().getHeight();

设置屏幕长亮

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

设置横竖屏

竖屏:

android:screenOrientation="portrait"
横屏:

android:screenOrientation="landscape"
同样也可以在代码中设置:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);




你可能感兴趣的:(android基础,android进阶)