- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)
将以下妨碍选择的内容注释掉
您可能关注的文档
最近下载
- 摄像头检验作业指导书.doc VIP
- 《城镇污水污泥流化床干化焚烧技术规程》(征求意见稿).pdf
- 阿奇沙坦非无菌化学原料药车间设计--本科毕业论文.docx VIP
- 办公用品供货服务计划方案.docx VIP
- 用于透明细胞肾细胞癌分型和评估透明细胞肾细胞癌预后的基因及其应用.pdf VIP
- G 正谱 赶圩归来阿里里 林凯 合吧声乐歌谱正谱子五线谱钢琴伴奏谱乐谱曲 谱弹唱谱歌曲乐曲.pdf VIP
- 零星工程施工方案范本(3篇).docx VIP
- 新疆四史应知应会内容.doc VIP
- 眼科显微器械的清洗流程.pptx VIP
- Lesson9-10Howareyoutoday(课件)新概念英语第一册.pptx VIP
文档评论(0)