Android 显示不满屏的问题解决

Android 显示不满屏的问题解决

Rocky@20110328


    从Android1.6以后的版本都是支持Density这个特性的。
    Density有三组固定不变的值。
   
    Hight Density     240
    Medium Density     160
    Low Density         120


    当在使用Android手机版本软件(Version below 3.0)的时候,由于屏幕尺寸特别大,这个是时候最常见的就是NotificationBar显示不全。
    刚刚开始大家都怀疑是NotificationBar的布局的问题。其实如果是布局的问题,那么应该在任何大小的屏幕上都会有这种问题。
   
    其实大家按照以下步骤就可以了。

1:修改android/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
       
        默认值
       
        DEFAULT_PORTRAIT_WIDTH=320;
        DEFAULT_PORTRAIT_HEIGHT=480;
       
        修改成我们屏幕的实际的默认值。例如我们这里的屏幕大小是1024*600
       
        DEFAULT_PORTRAIT_WIDTH    =    600    ;
        DEFAULT_PORTRAIT_HEIGHT    =    1024;
       
2:
        设置系统默认的ro.sf.lcd_density ,这个里面只能取三组值(240,160,120)。这样在/system/build.prop 我们就可以看见我们结果。
       
       
3:有时候大屏幕还会碰见一个问题,就是应用程序不能完全全屏显示。这个时候,我们还需要处理另外一个问题应用程序的兼容性。
     最直接的方式就是设置应用程序的兼容性为false.这里可以通过DevTool来设置,重启生效。
     通过查找,发现发生作用的地方是在frameworks/base/services/java/com/android/server/PackageManagerService.java
     中
      public void systemReady() {
        mSystemReady = true;
                    //revised by rocky 2010.10.15
        // Read the compatibilty setting when the system is ready.
        boolean compatibilityModeEnabled = android.provider.Settings.System.getInt(
                mContext.getContentResolver(),
                android.provider.Settings.System.COMPATIBILITY_MODE, 0) == 1;
        //PackageParser.setCompatibilityModeEnabled(compatibilityModeEnabled);
        PackageParser.setCompatibilityModeEnabled(false);
        if (DEBUG_SETTINGS) {
            Log.d(TAG, "compatibility mode:" + compatibilityModeEnabled);
        }
    }
       
        这里我直接设置为false,不取判断保存的设置值。
       
        通过这几个步骤,我相信大尺寸的屏幕显示问题可以得到解决了。

你可能感兴趣的:(Android,android,system,手机,2010)