`
苹果超人
  • 浏览: 200827 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ContextMenu

阅读更多
  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

    【contextmenu】是计算机用户界面中的一个重要组成部分,它是指在用户进行特定操作,如右键点击时出现的菜单。这个菜单提供了与所选元素相关的功能选项,极大地增强了用户与应用程序的交互性。在Web开发、桌面应用...

    WPF中鼠标左键单击Button弹出ContextMenu,让其右键ContextMenu失效

    在标题“WPF中鼠标左键单击Button弹出ContextMenu,让其右键ContextMenu失效”中,我们讨论的核心是两种常见的用户交互:Button的左键点击和ContextMenu的显示。通常,右键点击会默认触发ContextMenu,但在这个场景...

    vcontextmenu适用于Vue20的ContextMenu组件

    《Vue2.x中的v-contextmenu:打造高效便捷的右键菜单》 在现代Web开发中,Vue.js作为一款流行的前端框架,以其轻量级、易上手和强大的特性深受开发者喜爱。而在实际应用中,右键菜单作为一种常见的交互元素,能够...

    wpf中给 treeview 添加 CheckBox和 ContextMenu

    在实际应用中,我们经常需要增强其功能,比如添加复选框(CheckBox)和右键上下文菜单(ContextMenu)。下面将详细介绍如何在WPF的`TreeView`中实现这些特性。 首先,我们要理解`TreeView`的基本用法。`TreeView`...

    前端项目-leaflet-contextmenu.zip

    通常,你需要将下载的`Leaflet.contextmenu-master`压缩包解压,然后将`dist`目录下的`leaflet.contextmenu.js`和对应的CSS文件(如`leaflet.contextmenu.css`)添加到你的HTML文件中,通过`<script>`和`<link>`标签...

    react使用高德地图react-amap:Markers、Circle、ContextMenu、自定义ContextMenu

    以下是关于`react-amap`、Markers、Circle、ContextMenu以及自定义ContextMenu的详细知识点: 1. **react-amap**: `react-amap`是基于React的高德地图组件库,它将高德地图API的功能转化为React组件,使得开发者...

    3种不同的ContextMenu右键菜单演示.

    在计算机用户界面设计中,右键菜单(通常称为ContextMenu)是一种常见的交互元素,它为用户提供了一种快捷方式来访问特定的操作或功能。本教程将详细讲解三种不同的ContextMenu实现方法,帮助开发者更好地理解和应用...

    jquery-contextMenu右键(左键)菜单插件

    `jQuery-contextMenu`是一款强大的JavaScript插件,专为创建功能丰富的上下文菜单而设计,能够处理大量的元素。这款插件不仅支持传统的右键点击触发,还可以根据需求设置为左键点击显示菜单,极大地提升了用户的交互...

    contextMenu

    《jQuery-contextMenu:高效实现右键菜单的利器》 在网页开发中,右键菜单是一个常见且实用的功能,它能够为用户提供便捷的操作选项。jQuery-contextMenu是一款强大的jQuery插件,专为实现自定义右键菜单而设计。这...

    C# ContextMenu 窗口右键菜单实现

    在C#编程中,`ContextMenu`是一个非常实用的控件,用于实现窗口或者控件上的右键菜单功能。本文将详细讲解如何在C#中利用`ContextMenu`来创建和使用窗口右键菜单。 首先,我们需要了解`ContextMenu`的基本概念。`...

    android ContextMenu 上下文菜单

    在Android开发中,`ContextMenu`是用户交互的一种重要方式,特别是在处理列表或视图时,为用户提供更多操作选项。上下文菜单(ContextMenu)通常在长按某个项目时弹出,而不是像常规菜单那样通过菜单键或者汉堡菜单...

    ContextMenu(wpf)

    在Windows Presentation Foundation (WPF) 中,`ContextMenu` 是一种常用控件,它为用户提供了一种方便的方式来显示一系列可选项,通常在用户右键点击一个元素时出现。在这个主题中,我们将深入探讨如何在WPF中使用`...

    ContextMenu和Menu简单实例

    在Android开发中,`ContextMenu`和`Menu`是两种用于为用户提供操作选项的重要组件。它们在用户界面上提供了一个交互式的方式,让用户可以对选定的项目执行特定的操作。本实例将详细讲解`ContextMenu`和`Menu`的创建...

    案例六(contextmenu的使用

    在IT行业中,`contextmenu`是一个非常重要的概念,特别是在网页开发和用户界面设计中。`contextmenu`,中文通常称为“右键菜单”或“上下文菜单”,是当用户在鼠标右键点击时出现的菜单,它提供了与当前上下文相关的...

    Android 学习(22)ContextMenu

    在Android开发中,ContextMenu是一个非常重要的交互元素,它为用户提供了一种在长按操作后显示相关操作选项的方式。本教程将深入探讨如何在Android应用中实现ContextMenu,以及它的工作原理和最佳实践。 首先,理解...

    Android之上下文菜单ContextMenu

    在Android开发中,上下文菜单(ContextMenu)是一种常用的交互元素,它为用户提供了一种针对特定视图或数据项的操作选项。上下文菜单通常在长按某个视图后弹出,显示与该视图相关的操作。在本文中,我们将深入探讨`...

    optionMenu contextMenu popupMenu的集合

    在IT领域,特别是软件开发和用户界面设计中,`optionMenu`、`contextMenu`和`popupMenu`是三种常见的菜单类型,它们在提供用户交互和功能选择方面扮演着重要角色。下面将详细阐述这三个概念及其应用。 首先,`...

    JQuery之ContextMenu(右键菜单)

    本篇文章将深入探讨jQuery中的ContextMenu插件,这是一种实现右键菜单功能的方法,能够为网页提供更丰富的交互体验。 一、jQuery及其ContextMenu插件简介 jQuery是一个轻量级的JavaScript库,它通过其简洁的API使得...

Global site tag (gtag.js) - Google Analytics