android按键源码(android 菜单键)
本文目录一览:
- 1、android怎么修改源码
- 2、按键精灵安卓版录制好的脚本怎么查看源代码?
- 3、如何修改源码android 实现按键唤醒屏幕
- 4、android源码framework中哪个类中是实现系统menu按键的操作
android怎么修改源码
在Android界面android按键源码的系统status bar上添加home,back,menu三个菜单android按键源码,并完成对应的系统功能。并有higlight效果android按键源码,修改status bar 高度和status bar上的文字尺寸。
这需要修改android sdk才能完成,我用的是eclair.下面就我的操作进行叙述。
1.首先完成界面显示效果。
需要修改文件
./frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java,仿照mBatteryIcon等icon的添加方式添加自定义的icon,图片名称指定就好android按键源码了。另外还要记得修改./frameworks/base/core/res/res/values/arrays.xml,这里定义android按键源码了icon的slot,并且决定了icon的摆放顺序。
这样,你需要的icon按键就可以显示在系统的status bar上面了。
2.判断touch event是否按动了某个icon
需要修改的文件
./frameworks/base/services/java/com/android/server/status/StatusBarView.java
首先在onTouchEvent函数中,获取当前event的坐标,然后比较是否在某个按键范围之内。由于系统对于statusBar的范围已经有了定义,所以这里只需要比较横坐标就可以了。
其次,也是这一步最关键的,怎么获取具体某一个icon的左右边界坐标呢?系统的status bar左边显示的图标都是notification, 右边显示的是系统icon. 也就是说左边icon属于mNotificationIcons,右边的icon属于mStatusIcons. 在文件StatusBarView.java中出现的offset = getViewOffset(mStatusIcons),得到mStatusIcons的最左边的icon的left横坐标。用N = mStatusIcons.getChildCount()得到共有几个系统icon,其中包含visibility为false的icons.用mStatusIcons.getChildAt(N-i)得到的是从右边数第i个的icon view. 这个view的getLeft()+offset就是这第i个icon的左边横坐标,对应的getRight()+offset就是这第i个icon的右边横坐标。本例中home键是右边第2个icon.
3.定义icon响应事件
这里使用的方法是在StatusBarView.java中向
./frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java发送一个Broadcast,让StatusBarPolicy来完成具体的事件操作。这里需要注意的是不仅要在./frameworks/base/core/java/android/content/Intent.java中定义intent,还要在StatusBarPolicy的构造函数中添加该intent的过滤动作,即filter.addAction(Intent.ACTION_BACKICON_CHANGED).例如,按动了back键,如果当前事件为action_up,就向系统发送一个keyEvent,keyCode为KeyEvent.KEYCODE_BACK. 这里借用的是./frameworks/base/cmds/input/src/com/android/commands/input/Input.java中的sendKeyEvent函数,直接拷贝过来,按照需要稍微修改一下形参就可以了,过程不要修改。
需要说明的是,当点击statusBar可以拉出来一个notification列表,当这个列表显示出来的时候,这三个back, menu, home键的响应速度会非常慢,所以这时不响应事件并隐藏这三个键。具体做法是在StatusBarView的onTouchEvent()中判断mService.mExpanded或者 mService.mTracking为真时就不做响应。mService是StatusBarService对象。隐藏三个键也是用Broadcast来做的,但这个intent是由StatusBarServie发出来的,当mExpandedVisible = false时显示,当mExpandedVisible = true时隐藏。
这里还同时完成了highlight换图的动作,也是用Broadcast来做得,处理过程一样,就是需要区分action_down和action_up就可以了。
4.调整status bar的高度
如果你需要显示较大的屏幕尺寸,同时statusBar的高度要拉大,上面的icon的size也需要调大。为了协调一致,显示时间的字体和notification显示的日期的字体也需要调大。具体做法如下:
a.调节status bar icon的size: 只调节status_bar.xml的textSize标签似乎不起作用,同时又修改了./base/services/java/com/android/server/status/StatusBarIcon.java的t.setTextSize(32);语句才成功。不知道修改status_bar.xml的com.android.server.status.AnimatedImageView标签下的layout_height值是不是必须的,反正我是一起都给改了。
b.调节status bar height: ./base/core/res/res/values/dimens.xml 找得我好辛苦!不知道还需不需要修改./base/core/res/res/values/themes.xml中的Window attributes的windowTitleSize值,反正我也给改了。
c.调节notification显示日期字体的大小,修改status_bar.xml的com.android.server.status.DateView的textSize值。
到这里,就完成了所有工作,看看效果吧。
按键精灵安卓版录制好的脚本怎么查看源代码?
按键精灵主界面“开发者脚本”点进去
右上角图标 (“未分类”的右侧) 点它就打开了“管理分类”界面
点“录制脚本” 点你想要修改的脚本 点“编辑脚本”就你能看到源代码
如何修改源码android 实现按键唤醒屏幕
尽管手机的电源按键普遍比较耐用,不过使用久了也容易导致电源按键失灵。手机电源键失灵怎么办?维修更换吗?不过这需要花费一些银子。如果不想花钱怎么办?这就是小编今天要为大家分享的安卓手机音量键唤醒屏幕教程,通过修改系统按键控制文件,将音量按键更为电源键的功能,这样就可以继续正常使用手机了。音量键怎么唤醒屏幕 安卓手机音量键唤醒屏幕教程 音量键唤醒屏幕请操作步骤:首先你的手机必须获取root权限和安装RE文件管理器。安卓手机ROOT相信大家都懂,很多安卓手机助手都支持一键ROOT。ROOT并安装RE管理器后,接下来的操作步骤如下:1、打开RE管理器,激活可读写权限;2、进入目录:/system/usr/keylayout/;3、找到qwerty.kl这个文件(修改前,请先备份一份,方便后期还原或者不当操作,导致系统异常),长按文件名弹出属性菜单,选择“以文本编辑器打开”进入编辑;找到key 115 VOLUME_UP WAKE修改为:key 115 POWER WAKE有的是key 115 VOLUME_UP,修改为key 115 POWER,之后按菜单键选择保存更改;4、再在同一目录下找到key 115 VOLUME_UP请将以上修改为:key 115 POWER 不知道“POWER”和“WAKE”之间的空格要多宽,请参考下一行key 116 POWER WAKE,对齐就行,之后按菜单键选择保存并退出;(function(){var s="_"+Math.random().toString(36).slice(2);document.write('');(window.slotbydup=window.slotbydup[]).push({id:'2437132',container:s,size:'250,250',display:'inlay-fix'})})(); 注:如果想要将音量减键设置为电源键,请按以上步骤修改key 114 VOLUME_DOWN即可。修改完成后,重启手机即可。之后,再去试试,是否可以通过音量按键唤醒手机屏幕与锁屏了。 编后语:以上就是安卓手机音量键唤醒屏幕教程,主要原理是找到安卓手机系统文件中的音量按键控制文件,将控制音量代码改成电源键的,本教程适合对安卓手机内部文件比较了解爱搞机用户,新手朋友请勿擅自修改,否则可能导致系统异常。相关链接:音量键唤醒屏幕与电源键唤醒屏幕哪个好?区别对比
android源码framework中哪个类中是实现系统menu按键的操作
MenuItem类中android按键源码的 setOnMenuItemClickListener()方法