实现按键旋转屏幕(简单实现版)

上传人:博****1 文档编号:552641679 上传时间:2024-01-03 格式:DOC 页数:4 大小:19.50KB
返回 下载 相关 举报
实现按键旋转屏幕(简单实现版)_第1页
第1页 / 共4页
实现按键旋转屏幕(简单实现版)_第2页
第2页 / 共4页
实现按键旋转屏幕(简单实现版)_第3页
第3页 / 共4页
实现按键旋转屏幕(简单实现版)_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《实现按键旋转屏幕(简单实现版)》由会员分享,可在线阅读,更多相关《实现按键旋转屏幕(简单实现版)(4页珍藏版)》请在金锄头文库上搜索。

1、实现按键旋转屏幕 分类: android -02-23 17:56 220人阅读 评论(0) 收藏 举报 通过长按menu按键,可以旋转屏幕方向(0或者90),这个功能有时蛮有用的,下面来看看是如何实现的: 1 修改按键解决程序frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java函数public boolean interceptKeyTi(WindowState win, int code, int metaKeys, boolean down, int repeatCo

2、unt, int flags)在解决菜单键的地方if (code = KeyEvent.KEYCODE_MENU) final int chordBug = KeyEvent.META_SHIFT_ON; if (down & repeatCount = 0) if (mEnableShiftMenuBugReports & (metaKeys & chordBug) = chordBug) Intent intent = new Intent(Intent.ACTION_BUG_REPORT);mContext.sendOrderedBroadcast(intent, null);retur

3、n true; else if (SHOW_PROCESSES_ON_ALT_MENU &(metaKeys & KeyEvent.META_ALT_ON) = KeyEvent.META_ALT_ON) Intent service = new Intent();service.setClassName(mContext, com.android.server.LoadAverageService);ContentResolver res = mContext.getContentResolver();boolean shown = Settings.System.getInt(res, S

4、ettings.System.SHOW_PROCESSES, 0) != 0;if (!shown) mContext.startService(service); else mContext.stopService(service);Settings.System.putInt(res, Settings.System.SHOW_PROCESSES, shown ? 0 : 1);return true;/上面是本来的内容,下面是添加的新内容else if (down & repeatCount = 20 & MenuKeyUp & (!keyguardOn) /如果按下Menu键一定期间,

5、抬起时执行此段函数MenuKeyUp = false;try int ro = mWindowManager.getRotation(); /获取目前方向if( ro = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE ) ro = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; else ro = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; catch (RemoteException e) Log.v(TAG, ! getRotation fail !); try /旋转屏幕m

6、WindowManager.setRotation(ro, true, Surface.FLAGS_ORIENTATION_ANIMATION_DISABLE);/最后可跟不同的参数,可实现某些旋转效果 catch (RemoteException e) Log.v(TAG, ! mWindowManager.setRotation fail !);return true;if(!down) MenuKeyUp = true; 2 修改实现选择的函数/frameworks/base/services/java/com/android/server/WindowManagerService.ja

7、va找到该函数public boolean setRotationUncheckedLocked(int rotation, int animFlags)将如下阻碍选择的内容注释掉/rotation = mPolicy.rotationForOrientationLw(mForcedAppOrientation,/ mRotation, mDisplayEnabled);3、固然也可以新作一种rotate键来选择屏幕,如下是引用代码+ else if (code = KeyEvent.KEYCODE_ROTATE) + / ROTATE KEY pressed + if (down) + mB

8、uttonPushFlg = true; + + try + int ro = mWindowManager.getRotation(); / Orientation vertical + if (ro = 3 ) + mWindowManager.setRotation (Surface.ROTATION_0,true,mFancyRotationAnimation); /Orientation landscape + else + mWindowManager.setRotation (Surface.ROTATION_270,true,mFancyRotationAnimation); /Orientation portlate + + catch (RemoteException e) + / Igbore + Log.i(info, Rotation failed ); + + + return true; OK,重新编译后,长按Menu键即可实现屏幕旋转。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号