1、UI——上下文菜单(ContextMenu)

适应场景:

QQ图片长按,会出现“下载(原图),编辑图片,保存图片”菜单,属于上下文菜单。

短信长按,出现“插入图片、删除短信、列入黑名单、转发”菜单。

【案例】实现上下文菜单

步骤:

(1)打算在什么控件上建立上下文菜单,就要为这个控件添加id,便于java代码的引用。

(2)建立res/menu文件夹,该文件夹放置菜单界面的资源文件,相当于一个菜单项集合。

(3)建立在res/menu下contextmenu资源文件。其中编写菜单项。

每一个菜单项包括id和title

(4)创建对需要上下文菜单的控件引用名。

(5)activity给我们提供了onCreateContextMenu方法,需要重写,重写目的是加载菜单资源到菜单项上。也就是让菜单可见。

(6)将菜单挂到哪个控件上,也就是为哪个控件建立上下文菜单。

项目结构:

 

Android中什么是上下文 什么是上下文菜单_菜单项

 

 

 

activity_main.xml

 

Android中什么是上下文 什么是上下文菜单_控件_02

 

 

 

contextmenu.xml

 

Android中什么是上下文 什么是上下文菜单_菜单项_03

 

 

 

MainActivity.java

 

Android中什么是上下文 什么是上下文菜单_Android中什么是上下文_04

 

 

 

测试:

 

 

【案例】为菜单项添加响应事件。

点击某一项,显示该项内容

 

效果:

 

2、活动栏(actionbar)

android3.0之后,标题行添加活动栏。统一菜单操作方式。类似于微信右上角菜单。所谓活动栏空间不固定,菜单外观也会随之发生变化,如果空间足够大,显示更多的菜单项,甚至将只有标题文字方式还要添加图标显示。

【案例】如何设置活动栏

定义菜单资源actionmenu.xml

注意v7兼容问题

 

需要重新创建一个Activity。

Main2Activity.java

 

测试:

 

【案例】点击菜单,事件响应

 

效果:

 

、通知-Notification

通知设计角度来看,就是通过即时的消息不停占有的注意力。

显示在手机屏幕的最上方。最上方叫通知栏。

通知栏已有显示内容:网络状态、电池电量、时间等信息。

所有的Notification是通过NotificationManager来管理的。

【案例】通过按钮点击,给自己发送一个通知。

layout.xml

 

MainActivity.java

 

 

 

效果:

 

【作业】

自定义一个actionbar,模仿微信右上角菜单。