场景

效果

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

将布局改为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"><ImageViewandroid:id="@+id/image"android:src="@drawable/dog"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>

然后来到Activity,首先在activity中重写onCreateContextMenu方法,此方法能新增菜单,并添加菜单项

    //在activity中重写onCreateContextMenu菜单,为菜单添加选项值@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo);menu.add("收藏");menu.add("举报");}

然后在onCreate方法中将长按事件注册到菜单中并打开菜单。

    @Overrideprotected 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() {@Overridepublic 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 {@Overrideprotected 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() {@Overridepublic boolean onLongClick(View v) {//注册菜单registerForContextMenu(v);//打开菜单openContextMenu(v);return true;}});}//在activity中重写onCreateContextMenu菜单,为菜单添加选项值@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo);menu.add("收藏");menu.add("举报");}
}

Android中实现长按照片弹出右键菜单相关推荐

  1. android inputmethodmanager 不自动弹出,Android中软键盘InputMethodManager的弹出和隐藏,以及显示和隐藏的监听...

    1.首先设置软键盘的弹出模式,设置在初始化View的前面 @Override protected void onCreate(Bundle savedInstanceState) { this.req ...

  2. android中使用百度地图绘制弹出框的覆盖物

    这几天在项目中引入了百度地图,实现的功能就是类似美团的地图查看周边团购那样的功能,实现的弹出框布局要比美团复杂一些. 下面直接上代码: 通过这个方法在指定的坐标创建一个覆盖物 mBaiduMap.se ...

  3. [导入]C# Tips 2 右键单击listBox时弹出右键菜单并选中单击的行

    C#,Listbox,右键,菜单,选中 文章来源:http://blog.csdn.net/geyunfei_hit/archive/2008/07/16/2661153.aspx 转载于:https ...

  4. 在WPF中弹出右键菜单时判断鼠标是否选中该项

    和上篇在WPF的TreeView中实现右键选定一样,这仍然是一个右键菜单的问题: 这个需求是在一个实现剪贴板的功能的时候遇到的:在弹出右键菜单时,如果菜单弹出位置在ListViewItem中时,我们认 ...

  5. Duilib中为RichEdit\Edit控件添加自定义右键菜单

    前言 Duilib中的RichEdit控件在使用中发现,基本上对复制.粘贴.剪切等快捷方式都是支持的,不过唯一缺点是没有右键菜单,感觉不够好,于是就想着加上右键菜单. 右键菜单基本思路是,在RichE ...

  6. 变分模态分解_Android小部件示例中的模态对话框(弹出)

    变分模态分解 在此示例中,我们将看到如何在主屏幕中创建一个可以打开弹出对话框的Android小部件. 如您所知,Android Widgets是小型应用程序,基本上可以做两件事. 按下时启动新的活动, ...

  7. android一天一次弹窗,Android自定义Toast,多次弹出时取消上次弹出,最后一次弹出为准...

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. Android的Toast用队列管理弹出的消息,这个自定义的Toast用于频繁弹出Toas ...

  8. android 浮层菜单弹出,Android PopupWindow实现微信右上角的弹出菜单

    日常开发过程中对于PopupWindown的使用也是比较多的.这里给大家展示一下PopupWindow的使用. 修改activity_main.xml布局: xmlns:tools="htt ...

  9. Android监听系统输入法键盘弹出显示与隐藏事件

    Android监听系统输入法键盘弹出显示与隐藏事件 有时候需要监听Android系统输入法的弹出显示事件,比如:微信聊天时,不管你当前在聊天中的什么位置(上滑查看消息历史),每当你点击输入框时,都会自 ...

最新文章

  1. 用USB安装esxi
  2. 转】MYSQL性能调优与架构设计之select count(*)的思考
  3. 解决HBase RegionServer进程还在,但是显示已经dead了
  4. 【目标检测】单阶段算法--YOLOv4详解
  5. pythonxml读写_python xml读取和写入
  6. win10和ubuntu18双系统时间同步(20190604亲测可行)
  7. 【精选】OCR精选10个问题 百度paddleocr
  8. U8v10.1销售发货单打印模板取客户名称不正确的问题
  9. Java基本数据类型有哪些
  10. (百度贴吧发帖)html5,百度贴吧怎么发帖子
  11. C语言统计多个闰年,C语言统计闰年
  12. python md5解密方法与技巧_python ---- 爬取 md5解密结果 的小脚本
  13. C语言程序课程设计任务书
  14. linux grep正则表达式与grep用法详解
  15. 如何让你开发的产品在同质化洪流中脱颖而出?
  16. A New Approach for English-Chinese Named Entity Alignment(跨语言实体对齐)
  17. Oracle hint认识
  18. 微信小程序 - <textarea> 多行文本输入框 placeholder 属性换行显示文字(适用于 vant-weapp 的 Field 输入框文本域组件 van-field)样式修改的详细教程
  19. Myabtis-Plus(高级查询)
  20. 51Nod 圆与三角形

热门文章

  1. 问题排查:vue项目刷新页面加载了500多个请求?
  2. c语言万历年系统设计报告,C语言编写单片机万历系统课程设计报告分.doc
  3. Spring容器中获取Bean实例的七种方式(附实战源码)
  4. 既然有 GC 机制,为什么还会有内存泄露的情况
  5. 你知道从浏览器发送请求给SpringBoot后端时,是如何准确找到哪个接口的?(下篇)学废了吗?
  6. python 判断类型_青少年之Python编程课程安排lt;第一季gt;
  7. css33d图片轮播_1.Web前端之CSS3中3D立方体以及3D轮播图
  8. c# 微服务学习_关于使用“江西微就业”服务平台学习掌握就业创业帮扶政策的通知...
  9. 宿迁中学高考2021成绩查询,2020宿迁市地区高考成绩排名查询,宿迁市高考各高中成绩喜报榜单...
  10. 在dreamweaver mx中它只能对html文件可以进行编辑,Dreamweaver试题