Android 显示不满屏的问题解决

发布于:2021-10-27 17:43:10

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,不取判断保存的设置值。
??? ???
??? ??? 通过这几个步骤,我相信大尺寸的屏幕显示问题可以得到解决了。

相关推荐

最新更新

猜你喜欢