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 显示不满屏的问题解决
最新推荐文章于 2024-08-15 17:27:55 发布