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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实现按键旋转屏幕 分类:android 2011-02-23 17:56 220人阅读评论(0)收藏 举报 通过长按menu按键,可以旋转屏幕方向(0喊者90。),这个功能有时蛮有用的,下面来 看看是如何实现的: 1修改按键处理程序 frameworks/policies/base/phone/com/android/i ntemal/policy/impl/PhoneWindowMa nager. java 函数 public boolean interceptKeyTi(WindowState win, int code, int metaKeys, boolean down, int repeatCount, int flags) 在处理菜单键的地方 if (code == KeyEvent.KEYCODE_MENU) { final int chordBug = Key Event. M ET A_SH I FT_ON; if (down repeatCount == 0) { if (mEnableShiftMenuBugReports (metaKeys chordBug) == chordBug) { Intent intent = new lntent(lntent.ACTION_BUG__REPORT); mContext.sendOrderedBroadcast(intent, null); return true; } else if (SHOW_PROCESSES_ON_ALT_MENU (metaKeys KeyEvent.META_ALT_ON) == KeyEvent.META_ALT_ON) { Intent service = new Intent(); service.setClassName(mContext, Hcom.android.server.LoadAverageService”); Conte ntResolver res = mCon text.getC on tentResolver(); boolean shown = Settings.System.getlnt( res, Settings.System.SHOW_PROCESSES, 0) != 0; if (shown) { mContext.startService(service); } else { mContext.stopService(service); } Setti ngs?System?putlnt( res, Settings.System.SHOW_PROCESSES, shown ? 0 :1); return true; } } //上而是原来的内容,下而是添加的新内容 else if (down repeatCount == 20 MenuKeyllp (IkeyguardOn)) { 〃如果按下Menu键一定时间,抬起时执行此段函数 MenuKeyllp = false; try{ int ro = mWindowManager.getRotation(); //获取当前方向 if( ro == Activitylnfo.SCREEN_ORIENTATION_LANDSCAPE ) { ro = Activitylnfo.SCREEN_ORIENTATION_PORTRAIT; } else { ro = Activitylnfo.SCREEN_ORIENTATION_LANDSCAPE; } } catch (RemoteException e) { Log.v(TAG, I!I getRotation fail!!!); } try{ 〃旋转屏幕 mWindowManager.setRotation(ro, true, Surface.FLAGS_ORIENTATION_ANIMATION_DISABLE); 〃最后可跟不同的参数,可实现一些旋转效果 } catch (RemoteException e) { Log.v(TAG,!!! mWindowManager.setRotation fail !?!); } return true; } if(!down) { MenuKeyllp = true; } } 2修改实现选择的函数 /frameworks/base/services/java/com/android/server/WindowManagerService.java 找到该函数 public boolean setRotationllncheckedLocked(int rotation, int animFlags) 将以下妨碍选择的内容注释掉

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档