多语言展示
当前在线:368今日阅读:84今日分享:32

Android2.3.4解锁界面不满屏

在自己的s5pv210开发平台上发现,每次恢复工厂设置(其实就是把/data和/cache目录都清空,我这边是这样处理的,没有做recovery操作),或者手动格式化/data和/cache分区,会造成第一次启动后,解锁界面不满屏,重启后OK,这要如何处理呢?
工具/原料
1

Android2.3.4系统

2

三星S5PV210方案板

方法/步骤
1

在自己的s5pv210开发平台上发现,每次恢复工厂设置(其实就是把/data和/cache目录都清空,我这边是这样处理的,没有做recovery操作),或者手动格式化/data和/cache分区,会造成第一次启动后,解锁界面不满屏,重启后OK,这要如何处理呢?

2

本想通过修改XML来处理,但没效果,后来发现通过文件frameworks/base/policy/src/com/android/internal/policy/impl/KeyguardViewManager.java中有奥妙之处:

3

在文件中的public synchronized void show()函数有如下语句:

4

int flags = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN                    | WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER                    | WindowManager.LayoutParams.FLAG_KEEP_SURFACE_WHILE_ANIMATING                    ;

5

其中有FLAG_FORCE_NOT_FULLSCREEN,想想,将其修改为FLAG_FULLSCREEN,接下来编译、烧写,在期待中,系统启动起来了,执行了恢复工厂设置操作后,进入新一轮期待,启动后马上让其进入待机(恢复工厂设置后第一次启动是不会先出现锁屏界面的),再唤醒,令人想不到的事发生了,还是老样子,失望ing...

6

既然软的不行就来硬的吧,强制让其设置大小,同样是修改该函数,进行的操作如下:

7

1、添加包含:

8

import android.view.Display;import android.util.DisplayMetrics;

9

2、在如下语句

10

if (mKeyguardHost == null) {            if (DEBUG) Log.d(TAG, 'keyguard host is null, creating it...');

11

后面添加如下代码:

12

WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);DisplayMetrics  dm = new DisplayMetrics();wm.getDefaultDisplay().getMetrics(dm);Display display = wm.getDefaultDisplay();int statusBarHeight = (int)Math.ceil( 25 * dm.density);int height = display.getHeight();int width = display.getWidth();

13

3、把final int stretch = ViewGroup.LayoutParams.MATCH_PARENT; 注释掉。

14

4、修改如下语句

15

WindowManager.LayoutParams lp = new WindowManager.LayoutParams(                    stretch, stretch, WindowManager.LayoutParams.TYPE_KEYGUARD,                      flags, PixelFormat.TRANSLUCENT);

16

为:

17

WindowManager.LayoutParams lp = new WindowManager.LayoutParams(                    width, (height - statusBarHeight), WindowManager.LayoutParams.TYPE_KEYGUARD,                    flags, PixelFormat.TRANSLUCENT);

18

至此,修改好了,继续新一轮编译、烧写,在期待中终于迎来了希望,搞定了。END

推荐信息