系统菜单和弹出菜单
欢迎使用浩浩写的博客
系统菜单OptionsMenu
重写onCreateOptionsMenu()方法,系统菜单出现在界面的右上角,onOptionsItemSelected()监听方法,是监听系统菜单条目被点击的事件,数据需要在res文件夹下创建menu文件夹,在menu文件夹下创建xml文件。
上下文菜单ContextMenu
重写onCreateContextMenu()方法,需要绑定一个控件才可以有效果,使用registerForContextMenu()方法绑定一个控件,可以再代码中手动添加数据,使用add()方法,add()方法中的第一个参数 是分组的id,第二个参数 是itemid,第三个参数 是排序编号,小的在前,大的在后,第四个参数 是title(标题),onContextItemSelected()是他的监听事件。
弹出菜单PopupMenu
需要自己写一个现实PopupMenu的方法,其中new一个PopupMenu,然后给PopupMenu添加一个布局,然后设置监听事件setOnMenuItemClickListener,最后在调用其中的show()方法来显示弹出菜单,最后在界面上的控件里的事件调用此方法就可以实现弹出菜单的效果。
弹出窗体PopupWindow
PopupWindow的使用方法和PopupMenu类似,但是PopupWindow可以在外面自定义宽和高以后再设置为出现在屏幕的各个位置。
给PopupWindow设置动作和设置界面的透明度
设置动作需要在res下创建一个anim的文件夹,在anim文件夹下写xml文件,需要设置出现的延迟时间,和起始出现位置和到什么位置,然后在values文件夹下的style文件里面自己写一个style标签,然后把动作文件引入到style标签里,最后使用PopupWindow的setAnimationStyle()方法吧动作设置给PopupWindow。设置透明度是使用getWindow().getAttributes()获取当前屏幕的状态对象,里面的alpha就是透明度,数值越小越透明,然后使用getWindow().setAttributes()方法吧刚刚的对象设置给PopupWindow。