OnCreateContextMenu也是创建菜单,但此菜单是通过点击其他控件创建的,而不是通过点"Menu"按钮创建的。另外OnCreateContextMenu创建菜单后会使后台失去焦点,而通过点击Menu按钮创建的菜单(调用onCreateOptionsMenu方法)不会使后台失去焦点。
代码:
package com.kevin.contextmenu;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnCreateContextMenuListener;
import android.widget.ImageView;
import android.widget.TextView;
public class Main extends Activity {
private static final int CONTEXT_ITEM1 = Menu.FIRST;
private static final int CONTEXT_ITEM2 = Menu.FIRST + 1;
private static final int CONTEXT_ITEM3 = Menu.FIRST + 2;
private TextView tv_title;
// 重写OnContextItemSelected来定义用户单击menu后的动作
@Override
public boolean onContextItemSelected(MenuItem item) {
// 创建Bitmap对象
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.kobe);
int height = bitmap.getHeight();
int width = bitmap.getWidth();
try{
switch (item.getItemId()) {
case CONTEXT_ITEM1:
tv_title.setText(getString(R.string.height) + String.valueOf(height));
break;
case CONTEXT_ITEM2:
tv_title.setText(getString(R.string.width) + String.valueOf(width));
break;
case CONTEXT_ITEM3:
tv_title.setText(getString(R.string.handw) + String.valueOf(height) + ", " + String.valueOf(width));
break;
default:
break;
}
}catch (Exception e) {
e.printStackTrace();
}
return super.onContextItemSelected(item);
}
private ImageView img;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv_title = (TextView) findViewById(R.id.tv_title);
img = (ImageView) findViewById(R.id.imageView1);
img.setImageDrawable(getResources().getDrawable(R.drawable.kobe));
// 设置OnCreateContextMenu来创建ContextMenu选项,
// 在ImageView上可以使用ContextMenu(长按住Imageview就会跳出来菜单)
// 它与onCreateOptionsMenu区别在于,它会使后台失去焦点
img.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.add(Menu.NONE, CONTEXT_ITEM1, 0, R.string.getheight);
menu.add(Menu.NONE, CONTEXT_ITEM2, 0, R.string.getwidth);
menu.add(Menu.NONE, CONTEXT_ITEM3, 0, R.string.getheightandwidth);
}
});
}
}
分享到:
相关推荐
【contextmenu】是计算机用户界面中的一个重要组成部分,它是指在用户进行特定操作,如右键点击时出现的菜单。这个菜单提供了与所选元素相关的功能选项,极大地增强了用户与应用程序的交互性。在Web开发、桌面应用...
在标题“WPF中鼠标左键单击Button弹出ContextMenu,让其右键ContextMenu失效”中,我们讨论的核心是两种常见的用户交互:Button的左键点击和ContextMenu的显示。通常,右键点击会默认触发ContextMenu,但在这个场景...
《Vue2.x中的v-contextmenu:打造高效便捷的右键菜单》 在现代Web开发中,Vue.js作为一款流行的前端框架,以其轻量级、易上手和强大的特性深受开发者喜爱。而在实际应用中,右键菜单作为一种常见的交互元素,能够...
在实际应用中,我们经常需要增强其功能,比如添加复选框(CheckBox)和右键上下文菜单(ContextMenu)。下面将详细介绍如何在WPF的`TreeView`中实现这些特性。 首先,我们要理解`TreeView`的基本用法。`TreeView`...
通常,你需要将下载的`Leaflet.contextmenu-master`压缩包解压,然后将`dist`目录下的`leaflet.contextmenu.js`和对应的CSS文件(如`leaflet.contextmenu.css`)添加到你的HTML文件中,通过`<script>`和`<link>`标签...
以下是关于`react-amap`、Markers、Circle、ContextMenu以及自定义ContextMenu的详细知识点: 1. **react-amap**: `react-amap`是基于React的高德地图组件库,它将高德地图API的功能转化为React组件,使得开发者...
在计算机用户界面设计中,右键菜单(通常称为ContextMenu)是一种常见的交互元素,它为用户提供了一种快捷方式来访问特定的操作或功能。本教程将详细讲解三种不同的ContextMenu实现方法,帮助开发者更好地理解和应用...
`jQuery-contextMenu`是一款强大的JavaScript插件,专为创建功能丰富的上下文菜单而设计,能够处理大量的元素。这款插件不仅支持传统的右键点击触发,还可以根据需求设置为左键点击显示菜单,极大地提升了用户的交互...
《jQuery-contextMenu:高效实现右键菜单的利器》 在网页开发中,右键菜单是一个常见且实用的功能,它能够为用户提供便捷的操作选项。jQuery-contextMenu是一款强大的jQuery插件,专为实现自定义右键菜单而设计。这...
在C#编程中,`ContextMenu`是一个非常实用的控件,用于实现窗口或者控件上的右键菜单功能。本文将详细讲解如何在C#中利用`ContextMenu`来创建和使用窗口右键菜单。 首先,我们需要了解`ContextMenu`的基本概念。`...
在Android开发中,`ContextMenu`是用户交互的一种重要方式,特别是在处理列表或视图时,为用户提供更多操作选项。上下文菜单(ContextMenu)通常在长按某个项目时弹出,而不是像常规菜单那样通过菜单键或者汉堡菜单...
在Windows Presentation Foundation (WPF) 中,`ContextMenu` 是一种常用控件,它为用户提供了一种方便的方式来显示一系列可选项,通常在用户右键点击一个元素时出现。在这个主题中,我们将深入探讨如何在WPF中使用`...
在Android开发中,`ContextMenu`和`Menu`是两种用于为用户提供操作选项的重要组件。它们在用户界面上提供了一个交互式的方式,让用户可以对选定的项目执行特定的操作。本实例将详细讲解`ContextMenu`和`Menu`的创建...
在IT行业中,`contextmenu`是一个非常重要的概念,特别是在网页开发和用户界面设计中。`contextmenu`,中文通常称为“右键菜单”或“上下文菜单”,是当用户在鼠标右键点击时出现的菜单,它提供了与当前上下文相关的...
在Android开发中,ContextMenu是一个非常重要的交互元素,它为用户提供了一种在长按操作后显示相关操作选项的方式。本教程将深入探讨如何在Android应用中实现ContextMenu,以及它的工作原理和最佳实践。 首先,理解...
在Android开发中,上下文菜单(ContextMenu)是一种常用的交互元素,它为用户提供了一种针对特定视图或数据项的操作选项。上下文菜单通常在长按某个视图后弹出,显示与该视图相关的操作。在本文中,我们将深入探讨`...
在IT领域,特别是软件开发和用户界面设计中,`optionMenu`、`contextMenu`和`popupMenu`是三种常见的菜单类型,它们在提供用户交互和功能选择方面扮演着重要角色。下面将详细阐述这三个概念及其应用。 首先,`...
本篇文章将深入探讨jQuery中的ContextMenu插件,这是一种实现右键菜单功能的方法,能够为网页提供更丰富的交互体验。 一、jQuery及其ContextMenu插件简介 jQuery是一个轻量级的JavaScript库,它通过其简洁的API使得...