我知道如何设置全屏, 也知道如何取消全屏,问题是我不知道如何判断当前屏幕是全屏还是非全屏:
经过一段时间的思考, 我尝试出了如下解决办法:int val = context.getWindow().getAttributes().flags;
// 全屏 66816 - 非全屏 65792
if(val != 66816){//非全屏
context.getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}else{//取消全屏
context.getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
int val = context.getWindow().getAttributes().flags  
通过这个可以判断
但是
我有点担心 这段代码的移植问题, 我现在测试的是 android2.1  如果换到其他的系统上不知道会不会有问题
请问大家有没有更好的解决办法

解决方案 »

  1.   

    我觉得楼主的做法是可行的,看了下WindowManager的代码,其中对context.getWindow().getAttributes().flags,中的flag的值做了相应的处理,但是在每一个getWindow().getAttributes()下,确实固定的,所以我觉得是可行的。当然,我还有一种个人的想法:
    1*楼主获取手机的屏幕的高度screenHeight.
    2.楼主在你判断时候全屏的那个activity中肯定是有一个setContentView()方法的,假设参数为testView,
    那么你去这个view的高度(这个view的layout_height属性肯定是fill_parent),viewHeight。
    3.判断俩个是否相等。
      

  2.   

    获取Activity高度和屏幕高度比较一下 比较一下 
      

  3.   

    获取Activity高度??? 这个如何实现????
      

  4.   

    android是从低版本兼容高版本的!高于2.1的版本应该不会出问题!
      

  5.   

    位操作看WindowManager.LayoutParams attrs = getWindow().getAttributes();        if((attrs.flags & WindowManager.LayoutParams.FLAG_FULLSCREEN) == WindowManager.LayoutParams.FLAG_FULLSCREEN)//full screen
    ……
    else //full screen
    ……
      

  6.   

    位操作看WindowManager.LayoutParams attrs = getWindow().getAttributes();        if((attrs.flags & WindowManager.LayoutParams.FLAG_FULLSCREEN) == WindowManager.LayoutParams.FLAG_FULLSCREEN)//full screen
    ……
    else //full screen
    ……
    这种方法可行,第一种方法出问题了,没有反应。
      

  7.   

    记得修改全屏通过修改theme来的,可不可以getApplicationContext().getTheme来判断是不是全屏
      

  8.   

    activity的话直接通过this.getTheme