Android 2.3状态栏中添加menu home back快捷键

合集下载

安卓返回键设置方法

安卓返回键设置方法

安卓返回键设置方法安卓的返回键是手机或平板电脑上的一个重要按钮,它通常位于设备底部的屏幕下方。

这个键允许用户在应用程序或界面之间进行快速切换,并返回上一个页面或上一个应用程序。

返回键在安卓系统中十分常用,因此设置它的功能是非常重要的。

下面是关于如何设置安卓返回键的方法的详细指南。

第一种方法是使用设备的内置设置来设置返回键的功能。

不同手机品牌和型号的设置界面可能有所不同,但基本上都遵循相似的步骤。

以下是一般步骤:1.打开手机的设置应用。

通常可以在主屏幕或应用程序抽屉中找到这个图标,它通常是一个齿轮或一个带有设置标志的图标。

2.滚动或查找到“系统”或“设备”选项,并点击进入。

3.在系统设置中,寻找并点击“按钮”或“手势”选项,这取决于您手机的型号和制造商。

4.在按钮或手势选项下,您应该能够找到“返回键”选项。

点击进入。

5.在返回键设置中,您可以选择启用或禁用返回键、更改返回键的长按功能等。

根据您的需要进行调整和选择。

6.如果手机允许您自定义返回键的功能,则可以选择从列表中选择您喜欢的功能或自定义自己的功能。

7.设置完成后,请返回到主界面。

请注意,这些步骤可能因手机型号和制造商而有所不同,您可能需要通过试错的方法找到相应的设置。

但大致步骤是相似的。

第二种方法是使用第三方应用程序来设置返回键的功能。

有许多应用程序可供选择,它们允许您对返回键的功能进行更细致的设置,并提供更多功能选项。

以下是一些常用的返回键应用程序:1. Button Mapper: 这个应用程序允许您重新分配返回键的功能,例如单击、长按或双击返回键时执行不同的操作。

2. All in one Gestures: 这个应用程序允许您使用手势和按钮来执行各种操作,包括返回键的功能。

3. Fluid Navigation Gestures: 这个应用程序为用户提供了完全自定义的手势控制,允许您通过滑动操作来模拟返回键的功能。

这些应用程序可以在谷歌Play商店或其他第三方应用程序商店中找到。

安卓系统手机快捷键大全

安卓系统手机快捷键大全

安卓系统手机快捷键大全安卓系统手机快捷键大全全局快捷键启动(默认,可以自己定义修改,search键+任意字母键)quick launch: Browser SEARCH + bContacts SEARCH + cE-Mail SEARCH + eGoogle Mail SEARCH + gCalendar SEARCH + lMaps SEARCH + mMusic SEARCH + pMessaging SEARCH + sYouTube SEARCH + y弹出长按菜单:触屏上选中长按,或是长按轨迹球列表中的浏览:Navigation within lists下翻页 SPACEBAR上翻页 SHIFT + SPACEBAR跳转到页尾 ALT + TRACKBALL roll DOWN跳转到页首 ALT + TRACKBALL roll UP 文本输入和浏览 Typing and text navigation tips: 插入特殊符号ALT + SPACEBAR opens special character selector从左起删除 DEL从右起删除 SHIFT + DEL删除整行 ALT + DELCAPS大写锁定双按 SHIFT ,再按取消光标跳转到首字/尾字 ALT + roll TRACKBALL left/right制表符 ALT + q高亮选中文本 SHIFT + roll TRACKBALL剪切 MENU + x, 或是高亮选中文本后,长按轨迹球,选择弹出菜单中的Cut 复制 MENU + c, 或是高亮选中文本后,长按轨迹球,选择弹出菜单中的Copy 粘贴 MENU + v, 或是高亮选中文本后,长按轨迹球,选择弹出菜单中的Paste Undo MENU + z全选 MENU + a, 或是高亮选中文本后,长按轨迹球,选择弹出菜单中的内置浏览器 Browser shortcutsOpen Go to window MENU + sOpen Bookmarks MENU + bOpen Windows MENU + wView history MENU + hRefresh or stop page MENU + rGo back a page MENU + jGo forward a page MENU + kFind on page MENU + fGo to home page MENU + ENTERZoom in MENU + iZoom out MENU + oGo to Settings MENU + pPage down SPACEBARPage up SHIFT + SPACEBARGoogleMap shortcutsDirections MENU + dSelect map mode MENU + mHistory MENU + hMy Location MENU + 0 (zero)Go to Settings MENU + pZoom in MENU + iZoom out MENU + oGmail:F – Forward (while viewing message)R – Reply (while viewing message)A – Reply All (while viewing message)Y – Archive (while viewing message or from list)。

详解Android中的Menu菜单键

详解Android中的Menu菜单键

详解Android中的Menu菜单键Android中的设置按钮:长按或点击菜单键1.长按选项:布局⽂件:<LinearLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MenuActivity" ><TextViewandroid:id="@+id/menutext"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="第⼀种⽅法创建菜单"android:textSize="sp" /><TextViewandroid:id="@+id/menutext"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="第⼆种⽅法创建菜单"android:textSize="sp" /><ListViewandroid:id="@+id/menulist"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_marginTop="dp" ></ListView></LinearLayout>实现过程:private ListView list;private TextView lv;String[] str = { "TextView", "EditView", "Toast(消息框)" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_menu);list = (ListView) findViewById(R.id.menulist);ArrayAdapter<String> arr = new ArrayAdapter<String>(this,yout.simple_list_item_, str);list.setAdapter(arr);list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {menu.clear();menu.clearHeader();menu.setHeaderIcon((R.drawable.ic_launcher));menu.setHeaderTitle("我是ListView");menu.add(, , , "删除");menu.add(, , , "修改");}});// 第⼀种⽅法TextView tv = (TextView) findViewById(R.id.menutext);this.registerForContextMenu(tv);// 第⼆种⽅法lv = (TextView) findViewById(R.id.menutext);lv.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {menu.setHeaderTitle("长度-ContextMenu");menu.add(, , , "复制");SubMenu sb = menu.addSubMenu("查找");sb.add(, , , "按id查找");sb.add(, , , "按名称查找");}});}2.长按菜单项:private ListView list;private TextView lv;String[] str = { "TextView", "EditView", "Toast(消息框)" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_menu);list = (ListView) findViewById(R.id.menulist);ArrayAdapter<String> arr = new ArrayAdapter<String>(this,yout.simple_list_item_, str);list.setAdapter(arr);list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {menu.clear();menu.clearHeader();menu.setHeaderIcon((R.drawable.ic_launcher));menu.setHeaderTitle("我是ListView");menu.add(, , , "删除");menu.add(, , , "修改");}});// 第⼀种⽅法TextView tv = (TextView) findViewById(R.id.menutext);this.registerForContextMenu(tv);// 第⼆种⽅法lv = (TextView) findViewById(R.id.menutext);lv.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {menu.setHeaderTitle("长度-ContextMenu");menu.add(, , , "复制");SubMenu sb = menu.addSubMenu("查找");sb.add(, , , "按id查找");sb.add(, , , "按名称查找");}});}下⾯给⼤家补充点Menu的基本⽤法使⽤xml定义Menu菜单资源⽂件必须放在res/menu⽬录中。

Android手机常用的三个键,home键,back键及menu键。

Android手机常用的三个键,home键,back键及menu键。

Android⼿机常⽤的三个键,home键,back键及menu键。

public class BackKeyTest extends Activity{/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.main);}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event){if (keyCode == KeyEvent.KEYCODE_BACK ){// 创建退出对话框AlertDialog isExit = new AlertDialog.Builder(this).create();// 设置对话框标题isExit.setTitle("系统提⽰");// 设置对话框消息isExit.setMessage("确定要退出吗");// 添加选择按钮并注册监听isExit.setButton("确定", listener);isExit.setButton2("取消", listener);// 显⽰对话框isExit.show();}return false;}/**监听对话框⾥⾯的button点击事件*/DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener(){public void onClick(DialogInterface dialog, int which){switch (which){case AlertDialog.BUTTON_POSITIVE:// "确认"按钮退出程序finish();break;case AlertDialog.BUTTON_NEGATIVE:// "取消"第⼆个按钮取消对话框break;default:break;}}};}⼩结:Android⼿机常⽤的三个键,home键,back键及menu键。

在android的状态栏(statusbar)中增加menu,home和back快捷键的方法

在android的状态栏(statusbar)中增加menu,home和back快捷键的方法

[达内android培训]在android的状态栏(statusbar)中增加menu,home和back快捷键的方法需要说明的是:刚入手android开发没几天,对系统还不算很熟悉,这篇文章是基于前一篇转帖做的。

只是觉得他的方法有些麻烦,而且改出来的效果也不是我想要的。

由于完全改了status bar,建议先做几张png图片,加到Frameworks/base/core/res/res/drawable下。

最好做一张背景图,替换statusbar_background.png另外我又加了几张icon,分别是home menu和back的正常和按下状态。

这些图片为:stat_home.pngstat_home_pressed.pngstat_back.pngstat_back_pressed.pngstat_menu.pngstat_menu_pressed.png修改步骤为:一. 修改xml界面1. 增加图标当然,更改整个status bar避免不要要对源*大刀修一下。

我的该法是:修改status bar的layerout文件:Frameworks/base/core/res/res/layout/status_bar.xml在原来的linearlayout中新增三个image viewview plain<="" android:id="@+id/icons" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; ">android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="horizontal"><="" android:id="@+id/status_home" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; ">android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="top"android:paddingTop="6dip"android:paddingRight="10dip"android:paddingLeft="10dip"android:src="@drawable/stat_home" /><="" android:id="@+id/notificationIcons" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; ">android:layout_width="0dip"android:layout_weight="1"达内总部it培训提供:java培训,3g培训,php培训,软件测试培训,c++培训,.net培训,android:layout_height="fill_parent"android:layout_alignParentLeft="true"android:paddingLeft="6dip"android:gravity="center_vertical"android:orientation="horizontal"/><="" android:id="@+id/statusIcons" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; ">android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_alignParentRight="true"android:paddingRight="6dip"android:gravity="center_vertical"android:orientation="horizontal"/><="" android:id="@+id/status_menu" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; ">android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="top"android:paddingTop="6dip"android:paddingLeft="10dip"android:paddingRight="10dip"android:src="@drawable/stat_menu" /><="" android:id="@+id/status_back" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; ">android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="top"android:paddingTop="6dip"android:paddingRight="10dip"android:paddingLeft="10dip"android:src="@drawable/stat_back" />/LinearLayout>这样做的好处就是简单。

android 的快捷键

android 的快捷键

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)Alt+Enter显示当前选择资源(工程,or 文件or文件)的属性Shift+Enter在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)Shift+Ctrl+Enter在当前行插入空行(原理同上条)Ctrl+Q定位到最后编辑的地方Ctrl+L定位在某行(对于程序超过100的人就有福音了) Ctrl+M最大化当前的Edit或View (再按则反之)Ctrl+/ 注释当前行,再按则取消注释Ctrl+O快速显示OutLineCtrl+T快速显示当前类的继承结构Ctrl+W关闭当前EditerCtrl+K参照选中的Word快速定位到下一个Ctrl+E快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)Ctrl+/(小键盘) 折叠当前类中的所有代码Ctrl+×(小键盘) 展开当前类中的所有代码Ctrl+Space代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)Ctrl+Shift+E显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)Ctrl+J正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line 中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)Ctrl+Shift+J反向增量查找(和上条相同,只不过是从后往前查) Ctrl+Shift+F4 关闭所有打开的EditerCtrl+Shift+X把当前选中的文本全部变味小写Ctrl+Shift+Y把当前选中的文本全部变为小写Ctrl+Shift+F格式化当前代码Ctrl+Shift+P定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)Alt+Shift+R重命名(是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)Alt+Shift+M抽取方法(这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)Alt+Shift+C修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)Alt+Shift+L抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)Alt+Shift+F把Class中的local变量变为field变量(比较实用的功能)Alt+Shift+I合并变量(可能这样说有点不妥Inline)Alt+Shift+V移动函数和变量(不怎么常用)Alt+Shift+Z重构的后悔药(Undo)编辑作用域功能快捷键全局查找并替换Ctrl+F文本编辑器查找上一个Ctrl+Shift+K文本编辑器查找下一个Ctrl+K全局撤销Ctrl+Z全局复制Ctrl+C全局恢复上一个选择Alt+Shift+↓全局剪切Ctrl+X全局快速修正Ctrl1+1全局内容辅助Alt+/全局全部选中Ctrl+A全局删除Delete全局上下文信息Alt+?Alt+Shift+?Ctrl+Shift+SpaceJava编辑器显示工具提示描述F2 Java编辑器选择封装元素Alt+Shift+↑ Java编辑器选择上一个元素Alt+Shift+← Java编辑器选择下一个元素Alt+Shift+→ 文本编辑器增量查找Ctrl+J文本编辑器增量逆向查找Ctrl+Shift+J全局粘贴Ctrl+V全局重做Ctrl+Y查看作用域功能快捷键全局放大Ctrl+=全局缩小Ctrl+-窗口作用域功能快捷键全局激活编辑器F12全局切换编辑器Ctrl+Shift+W全局上一个编辑器Ctrl+Shift+F6全局上一个视图Ctrl+Shift+F7全局上一个透视图Ctrl+Shift+F8全局下一个编辑器Ctrl+F6全局下一个视图Ctrl+F7全局下一个透视图Ctrl+F8文本编辑器显示标尺上下文菜单Ctrl+W 全局显示视图菜单Ctrl+F10全局显示系统菜单Alt+-导航作用域功能快捷键Java编辑器打开结构Ctrl+F3全局打开类型Ctrl+Shift+T全局打开类型层次结构F4全局打开声明F3全局打开外部javadoc Shift+F2全局打开资源Ctrl+Shift+R全局后退历史记录Alt+←全局前进历史记录Alt+→全局上一个Ctrl+,全局下一个Ctrl+.Java编辑器显示大纲Ctrl+O全局在层次结构中打开类型Ctrl+Shift+H 全局转至匹配的括号Ctrl+Shift+P全局转至上一个编辑位置Ctrl+QJava编辑器转至上一个成员Ctrl+Shift+↑ Java编辑器转至下一个成员Ctrl+Shift+↓ 文本编辑器转至行Ctrl+L搜索作用域功能快捷键全局出现在文件中Ctrl+Shift+U全局打开搜索对话框Ctrl+H全局工作区中的声明Ctrl+G全局工作区中的引用Ctrl+Shift+G文本编辑作用域功能快捷键文本编辑器改写切换Insert 文本编辑器上滚行Ctrl+↑ 文本编辑器下滚行Ctrl+↓文件作用域功能快捷键全局保存Ctrl+XCtrl+S全局打印Ctrl+P全局关闭Ctrl+F4全局全部保存Ctrl+Shift+S 全局全部关闭Ctrl+Shift+F4 全局属性Alt+Enter全局新建Ctrl+N项目作用域功能快捷键全局全部构建Ctrl+B源代码作用域功能快捷键Java编辑器格式化Ctrl+Shift+FJava编辑器取消注释Ctrl+\Java编辑器注释Ctrl+/Java编辑器添加导入Ctrl+Shift+MJava编辑器组织导入Ctrl+Shift+OJava编辑器使用try/catch块来包围未设置,太常用了,所以在这里列出,建议自己设置。

Android操作系统的快捷键和技巧

Android操作系统的快捷键和技巧

Android操作系统的快捷键和技巧
Android操作系统的快捷键和技巧
1.首先就是最常用的技巧之一,长按Home键可以调出最近使用的`6个程序,并将当前程序置入后台运行
2.调整音量至最低,就会依次进入振动模式和电话铃声静音
3.长按挂机键,在弹出的进阶菜单中可以选择飞行模式、静音模式和关机,但是值得一提的是,这里的静音室完全静音,音乐盒游戏都没有声音。

4.输入英文时,删除一个词就可以同时按下Menu键和Del键,这样的操作并不是只删除一个字母。

5.在短信菜单中,长按某条短信会调出进阶菜单,选择相应的选项即可将此短信转发或回复。

6.长按接听键,会自动激活系统的语音拨号功能,但是需要注意的是这里的语音仅能识别英文,即使刷了中文操作系统也不行。

7.在SDcard里建立诸"Ringtones""Alarms""Notifications"等文件夹,再将将铃声文件(ogg,mp3,wav,mid等)放进去,系统选择铃声的选项中就多出了这些音乐文件。

安卓版滑动HOME键使用教程

安卓版滑动HOME键使用教程

安卓版滑动HOME键使用教程大屏手机是目前整个智能手机的一个整体趋势。

毫无疑问大屏幕在视觉上给我们带来更多的灵魂冲击,大屏幕虽然给我们带来不少方便同时也给我们带来了不少麻烦,大家都知道很多时候操作手机我们不得不使用单手来实现,不过屏幕大了手指不够长的说,这可如何是好?元芳你怎么看?滑动HOME键下载软件中文名:滑动HOME键软件英文名:Swipe Home Button软件类别:系统工具软件语言:中文系统要求:Android2.3+软件大小:331KB软件测试机型:MOTO ME525滑动HOME键,只看应用的名字多少也能猜到,这款APP可以让我们用手势来实现一些类似HOME键之类的操作。

而与一些同类应用相比,它会显得更加小巧、纯净、容易使用。

应用打开后,各项功能及设定在主界面上一目了然。

每一个设置选项下面都有简单的说明,几乎无需多做额外的介绍。

基本设置前三个设置选项可以让应用更隐蔽的在后台运行,只是如果勾选第三个选项,想让应用不在通知栏中显示,首先要确定手机是安卓4.1以上的系统,不然应用服务会随通知栏图标一起被关闭掉。

该应用提供了8种手势动作,具体的动作在“使用说明”选项中有详细描述。

默认状态下,可以从屏幕底部中间向上滑来执行HOME键操作,向左上或右上滑呼出下拉通知栏,向上后再向下呼出最近使用的应用菜单。

如果有特别需要,还可以在“手势绑定”选项中对每一个手势动作的功能进行自定义设置,进而可以实现用滑动手势快速打开自定义应用的功能。

手势动作设置另外,高级设定选项中还有一些更详细的设置,不过通常保持默认状态即可。

高级设置值得一提的是,作为一款系统功能性增强的工具,这款应用竟然不需要root 权限,而且完全免费还没有任何内置广告。

对用户而言可谓相当友好。

文章来源安软市场 /news/2421.html。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android 2.3状态栏中添加menu home back快捷键在Android 2.3状态栏中添加menu,home和back快捷键的方法1、准备资源,修改XML文准备几张图,这里我们准备添加home back和menu图标,就需要准备6张图,三张普通状态,三张按下的高亮状态图标:stat_home.pngstat_home_pressed.pngstat_back.pngstat_back_pressed.pngstat_menu.pngstat_menu_pressed.png把它们放在frameworks/base/packages/SystemUI/res/drawable/目录下同时,在frameworks/base/packages/SystemUI/res/drawable 下创建三个imageButton的xml文件xml_stat_home.xml1. <?xml version="1.0"encoding="utf-8"?>2. <selector3. xmlns:android="/apk/res/android">4. <item5. android:state_focused="true"6. android:state_pressed="false"7. android:drawable="@drawable/stat_home"/>8. <item9. android:state_focused="true"10. android:state_pressed="true"11. android:drawable="@drawable/stat_home_pressed"/>12. <item13. android:state_focused="false"14. android:state_pressed="true"15. android:drawable="@drawable/stat_home_pressed"/>16. <item17. android:drawable="@drawable/stat_home"/>18. </selector>xml_stat_back.xml1. <?xml version="1.0"encoding="utf-8"?>2. <selector3. xmlns:android="/apk/res/android">4. <item5. android:state_focused="true"6. android:state_pressed="false"7. android:drawable="@drawable/stat_back"/>8. <item9. android:state_focused="true"10. android:state_pressed="true"11. android:drawable="@drawable/stat_back_pressed"/>12. <item13. android:state_focused="false"14. android:state_pressed="true"15. android:drawable="@drawable/stat_back_pressed"/>16. <item17. android:drawable="@drawable/stat_back"/>18. </selector>xml_stat_menu.xml1. <?xml version="1.0"encoding="utf-8"?>2. <selector3. xmlns:android="/apk/res/android">4. <item5. android:state_focused="true"6. android:state_pressed="false"7. android:drawable="@drawable/stat_menu"/>8. <item9. android:state_focused="true"10. android:state_pressed="true"11. android:drawable="@drawable/stat_menu_pressed"/>12. <item13. android:state_focused="false"14. android:state_pressed="true"15. android:drawable="@drawable/stat_menu_pressed"/>16. <item17. android:drawable="@drawable/stat_menu"/>18. </selector>修改status_bar.xml成如下目录:frameworks/base/packages/SystemUI/res/layout/status_bar.xml1. <?xml version="1.0" encoding="utf-8"?>2. <!--3. /* apps/common/assets/default/default/skins/StatusBar.xml4. **5. ** Copyright 2006, The Android Open Source Project6. **7. ** Licensed under the Apache License, Version 2.0 (the "License");8. ** you may not use this file except in compliance with the License.9. ** You may obtain a copy of the License at10. **11. ** /licenses/LICENSE-2.012. **13. ** Unless required by applicable law or agreed to in writing, software14. ** distributed under the License is distributed on an "AS IS" BASIS,15. ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.16. ** See the License for the specific language governing permissions and17. ** limitations under the License.18. */19. -->20.21. <!-- android:background="@drawable/status_bar_closed_default_background" -->22. <com.android.systemui.statusbar.StatusBarView23. xmlns:android="/apk/res/android"24. android:background="@drawable/statusbar_background"25. android:orientation="vertical"26. android:focusable="true"27. android:descendantFocusability="afterDescendants"28. >29.30. <LinearLayout android:id="@+id/icons"31. android:layout_width="match_parent"32. android:layout_height="match_parent"33. android:orientation="horizontal">34. <com.android.systemui.statusbar.IconMerger android:id="@+id/notificationIcons"35. android:layout_width="0dip"36. android:layout_weight="1"37. android:layout_height="match_parent"38. android:layout_alignParentLeft="true"39. android:paddingLeft="6dip"40. android:gravity="center_vertical"41. android:orientation="horizontal"/>42.43. <LinearLayout android:id="@+id/statusIcons"44. android:layout_width="wrap_content"45. android:layout_height="match_parent"46. android:layout_alignParentRight="true"47. android:paddingRight="6dip"48. android:gravity="center_vertical"49. android:orientation="horizontal"/>50. <ImageButton android:id="@+id/go_home"51. android:layout_width="32px"52. android:layout_height="32px"53. android:layout_alignParentLeft="true"54. android:paddingLeft="10dip"55. android:paddingTop="10dip"56. android:gravity="center_vertical"57. android:clickable="true"58. android:background="@drawable/xml_stat_home"59. />60. <ImageButton android:id="@+id/pop_menu"61. android:layout_width="32px"62. android:layout_height="32px"63. android:layout_alignParentRight="true"64. android:paddingLeft="10dip"65. android:paddingTop="10dip"66. android:gravity="center_vertical"67. android:orientation="horizontal"68. android:clickable="true"69. android:background="@drawable/xml_stat_menu"70. />71. <ImageButton android:id="@+id/go_back"72. android:layout_width="32px"73. android:layout_height="32px"74. android:layout_alignParentRight="true"75. android:paddingLeft="10dip"76. android:paddingTop="10dip"77. android:gravity="center_vertical"78. android:orientation="horizontal"79. android:clickable="true"80. android:background="@drawable/xml_stat_back"81. />82. <com.android.systemui.statusbar.Clock83. android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon"84. android:layout_width="wrap_content"85. android:layout_height="match_parent"86. android:singleLine="true"87. android:paddingRight="6dip"88. android:gravity="center_vertical|left"89. />90. </LinearLayout>91.92. <LinearLayout android:id="@+id/ticker"93. android:layout_width="match_parent"94. android:layout_height="match_parent"95. android:paddingLeft="6dip"96. android:animationCache="false"97. android:orientation="horizontal" >98. <ImageSwitcher android:id="@+id/tickerIcon"99. android:layout_width="wrap_content"100. android:layout_height="match_parent"101. android:layout_marginRight="8dip"102. >103. <com.android.systemui.statusbar.AnimatedImageView104. android:layout_width="25dip"105. android:layout_height="25dip"106. />107. <com.android.systemui.statusbar.AnimatedImageView108. android:layout_width="25dip"109. android:layout_height="25dip"110. />111. </ImageSwitcher>112. <com.android.systemui.statusbar.TickerView android:id="@+id/tickerText"113. android:layout_width="0dip"114. android:layout_weight="1"115. android:layout_height="wrap_content"116. android:paddingTop="2dip"117. android:paddingRight="10dip">118. <TextView119. android:textAppearance="@*android:style/TextAppearance.StatusBar.Ticker" 120. android:layout_width="match_parent"121. android:layout_height="wrap_content"122. android:singleLine="true"123. />124. <TextView125. android:textAppearance="@*android:style/TextAppearance.StatusBar.Ticker" 126. android:layout_width="match_parent"127. android:layout_height="wrap_content"128. android:singleLine="true"129. />130. </com.android.systemui.statusbar.TickerView>131. </LinearLayout>132.133. <com.android.systemui.statusbar.DateView android:id="@+id/date"134. android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon"135. android:layout_width="wrap_content"136. android:layout_height="match_parent"137. android:singleLine="true"138. android:gravity="center_vertical|left"139. android:paddingLeft="6px"140. android:paddingRight="6px"141. android:background="@drawable/statusbar_background"142. />143. </com.android.systemui.statusbar.StatusBarView>二为按钮添加动态效果修改frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarView.java 在类中新增加四个成员(须导入android.widget.ImageButton和android.content.Context):1. ImageButton mHomeBtn;2. ImageButton mBackBtn;3. ImageButton mMenuBtn;4. final Context mContext;增加三个常量:(须导入android.view.KeyEvent;)public static final int RESV_KEY_HOME = KeyEvent.KEYCODE_HOME;public static final int RESV_KEY_BACK = KeyEvent.KEYCODE_BACK;public static final int RESV_KEY_MENU = KeyEvent.KEYCODE_MENU;;在构造函数StatusBarView中初始化mContext1. public StatusBarView(Context context, AttributeSet attrs) {2. super(context, attrs);3. mContext=context;4. }注意”mContext=context;”须在”super(context, attrs);”后面,不然编译会报错在onFinishInflate中,获取几个button 的handler,并设置touch事件,添加如下代码:1. mHomeBtn = (ImageButton)findViewById(R.id.go_home);2. mBackBtn = (ImageButton)findViewById(R.id.go_back);3. mMenuBtn = (ImageButton)findViewById(R.id.pop_menu);4.5. mHomeBtn.setOnTouchListener(homeOnTouch);6. mBackBtn.setOnTouchListener(backOnTouch);7. mMenuBtn.setOnTouchListener(menuOnTouch);各button的touch事件添加如下:1. void sendIntent(Intent intent)2. {3. mContext.sendBroadcast(intent);4. }5. private void sendKeyIntent(int keycode){6. Intent intent = new Intent(Intent.ACTION_ICONKEY_CHANGED);7. intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);8. intent.putExtra("keycode", keycode);9. sendIntent(intent);10. }11.12. private OnTouchListener homeOnTouch = new OnTouchListener(){13. //@Override14. public boolean onTouch(View v, MotionEvent event)15. {16. // TODO Auto-generated method stub17. switch (event.getAction()) {18. case MotionEvent.ACTION_UP:19. {20. sendKeyIntent(RESV_KEY_HOME);21. }22. break;23. }24. return false;25. }26. };27.28. private OnTouchListener backOnTouch = new OnTouchListener(){29. //@Override30. public boolean onTouch(View v, MotionEvent event)31. {32. // TODO Auto-generated method stub33. switch (event.getAction()) {34. case MotionEvent.ACTION_UP:35. {36. sendKeyIntent(RESV_KEY_BACK);37. }38. break;39. }40. return false;41. }42. };43.44. private OnTouchListener menuOnTouch = new OnTouchListener(){45. //@Override46. public boolean onTouch(View v, MotionEvent event)47. {48. // TODO Auto-generated method stub49. switch (event.getAction()) {50. case MotionEvent.ACTION_UP:51. {52. sendKeyIntent(RESV_KEY_MENU);53. }54. break;55. }56. return false;57. }58. };为防止点击statusBar上的按钮,触发标题栏的expend事件,修改一下函数onInterceptTouchEvent,点击到不属于button区域时才允许解析Motion的event:1. public boolean onInterceptTouchEvent(MotionEvent event) {2. if( (event.getX() > mHomeBtn.getRight())3. && (event.getX() < mMenuBtn.getLeft())){4. return mService.interceptTouchEvent(event)5. ? true : super.onInterceptTouchEvent(event);6. }7. return false;8. //return mService.interceptTouchEvent(event)9. // ? true : super.onInterceptTouchEvent(event);10. }11. }需要自己添加Intent打开frameworks/base/core/java/android/content/Intent.java,增加下面的内容,由于我们的使用的API不公开,须加上/**@hide*/,不然编译会报错1. /**2. * @hide3. */4. public static final String ACTION_ICONKEY_CHANGED ="android.intent.acti on.ICONKEY_CHANGED";5.接收并处理intent修改StatusBarPolicy.java目录:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarPolicy.java首先在构造函数中加入Intent的filter,注册号这个intent的receiver。

相关文档
最新文档