场景

效果

 

 

注:

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

实现

将布局改为LinearLayout,并通过android:orientation="vertical">设置为垂直布局。

然后添加一个ImageView,并设置id属性和图片源。

<?xml version="1.0" encoding="utf-8"?>"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"/>

然后来到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("举报");    }} 

更多相关文章

  1. 【6.21】PreferenceActivity来设置setting菜单
  2. 手把手教你在Windows下搭建React Native Android开发环境
  3. 【Android(安卓)Studio 4.0.0】高版本Android(安卓)Studio 打开
  4. Android(安卓)控件(注册对话框)
  5. 网页无法打开...因为:net:ERR_CLEARTEXT_NOT_PERMITTED错误解决办
  6. Android手机开发:网络连接-打开Url下载信息
  7. Intent的详细解析以及用法
  8. EventBus3.x的正确打开方式
  9. [房贷计算器]-升级心得

随机推荐

  1. 相对布局的属性
  2. Android 的权限级别小记
  3. Android中使用HTTP服务
  4. Android多媒体开发(4)——添加FFmpeg支持
  5. 系出名门Android(10) - HTTP 通信, XML
  6. Android之ContextMenu的使用方法以及与Op
  7. Android网络框架综述(一)OkHttp、NoHttp、V
  8. Android(安卓)动态设置列表样式,不用ListV
  9. Android O指纹识别解析
  10. android mediaStore