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,不取判断保存的设置值。

通过这几个步骤,我相信大尺寸的屏幕显示问题可以得到解决了。

更多相关文章

  1. Android(安卓)给TextView 中 部分文字加下划线 并加入超链接(可点
  2. Android(安卓)NavigationView 中 menu item 字体大小设置
  3. RK3288 android 7.1 EMMC 问题导致卡死在开机logo 界面
  4. android asmack解决连接ejabberd的问题
  5. EditText的属性
  6. 设置Activity全屏
  7. android camera(四):camera 驱动 GT2005
  8. XUI 一个简洁而又优雅的Android原生UI框架
  9. 小白学习android(一):android开发常识问题

随机推荐

  1. Android学习之 sildingmenu
  2. Android(安卓)android:gravity属性介绍及
  3. 【转】android中Textview如何限制在一行
  4. 布局(1、线性布局)
  5. Android通过源码编译apk获得系统权限
  6. 2.6.2 Notification的功能与用法
  7. android倒计时(整理)
  8. ImageView下载图片加载
  9. Android点滴积累(一)
  10. Android(安卓)RelativeLayout相对布局属