Android中实现长按照片弹出右键菜单功能的实例代码
程序员文章站
2022-03-14 10:53:17
场景效果
注:
实现
将布局改为linearlayout,并通过android:orientation="vertical">设置为垂直布局。
然后添加一个image...
场景效果
注:
实现
将布局改为linearlayout,并通过android:orientation="vertical">
设置为垂直布局。
然后添加一个imageview,并设置id属性和图片源。
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".longclickactivity"> <imageview android:id="@+id/image" android:src="@drawable/dog" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </linearlayout>
然后来到activity,首先在activity中重写oncreatecontextmenu方法,此方法能新增菜单,并添加菜单项
//在activity中重写oncreatecontextmenu菜单,为菜单添加选项值 @override public void oncreatecontextmenu(contextmenu menu, view v, contextmenu.contextmenuinfo menuinfo) { super.oncreatecontextmenu(menu, v, menuinfo); menu.add("收藏"); menu.add("举报"); }
然后在oncreate方法中将长按事件注册到菜单中并打开菜单。
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_long_click); //将长按事件注册到菜单中,并打开菜单 imageview imageview = (imageview) findviewbyid(r.id.image); imageview.setonlongclicklistener(new view.onlongclicklistener() { @override public boolean onlongclick(view v) { //注册菜单 registerforcontextmenu(v); //打开菜单 opencontextmenu(v); return true; } }); }
完整示例代码
package com.badao.relativelayouttest; import androidx.appcompat.app.appcompatactivity; import android.os.bundle; import android.view.contextmenu; import android.view.view; import android.widget.imageview; public class longclickactivity extends appcompatactivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_long_click); //将长按事件注册到菜单中,并打开菜单 imageview imageview = (imageview) findviewbyid(r.id.image); imageview.setonlongclicklistener(new view.onlongclicklistener() { @override public boolean onlongclick(view v) { //注册菜单 registerforcontextmenu(v); //打开菜单 opencontextmenu(v); return true; } }); } //在activity中重写oncreatecontextmenu菜单,为菜单添加选项值 @override public void oncreatecontextmenu(contextmenu menu, view v, contextmenu.contextmenuinfo menuinfo) { super.oncreatecontextmenu(menu, v, menuinfo); menu.add("收藏"); menu.add("举报"); } }
总结
以上所述是小编给大家介绍的android中实现长按照片弹出右键菜单功能的实例代码,希望对大家有所帮助
上一篇: ajax实现加载数据功能
下一篇: 原生JS进行前后端同构