Java 关联菜单能否打开图像视图?

Java 关联菜单能否打开图像视图?,java,android,eclipse,image,emulation,Java,Android,Eclipse,Image,Emulation,注意:这个问题是不同的,不是完全重复的。这表示图像需要弹出,而不需要对话框。甚至没有人费心去检查这个问题,看它是否是重复的,而不是重复的。 我正试图从上下文菜单中打开一个图像视图,但是,我不知道如何做到这一点。单击关联菜单中的项目时,我需要显示一个图像视图。甚至可以从上下文菜单打开图像视图吗?人们建议改为使用对话框,但我想知道这种特定方式是否可行。先谢谢你。这是我的密码: package com.carouseldemo.main; import android.app.Activity;

注意:这个问题是不同的,不是完全重复的。这表示图像需要弹出,而不需要对话框。甚至没有人费心去检查这个问题,看它是否是重复的,而不是重复的。

我正试图从上下文菜单中打开一个图像视图,但是,我不知道如何做到这一点。单击关联菜单中的项目时,我需要显示一个图像视图。甚至可以从上下文菜单打开图像视图吗?人们建议改为使用对话框,但我想知道这种特定方式是否可行。先谢谢你。这是我的密码:

package com.carouseldemo.main;

import android.app.Activity;


import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;

import android.view.MenuInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.carouseldemo.controls.Carousel;
import com.carouseldemo.controls.CarouselAdapter;
import com.carouseldemo.controls.CarouselAdapter.AdapterContextMenuInfo;
import com.carouseldemo.controls.CarouselAdapter.OnItemClickListener;
import com.carouseldemo.controls.CarouselAdapter.OnItemSelectedListener;
import com.carouseldemo.controls.CarouselItem;

public class MainActivity extends Activity {


    @Override
      public boolean onContextItemSelected(MenuItem item) {
            int id = item.getItemId(); // you know which menu is clicked
            ImageView popup = new ImageView(this);
        //set the image 
            popup.setImageResource(R.drawable.cat); // or setImageBitmap ,
                                                            // or setImageUti etc
        // this will make the ImageView fill the entire content area. If you don't want this wrap it with another layout
            ((FrameLayout) findViewById(android.R.id.content)).addView(popup);
            return super.onContextItemSelected(item);
        }


    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.testmenu1, menu);
    // your code...
    return true;} // true if you want the menu to be displayed; false otherwise

@Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        // Just prepare ourself for unexpected arguments...

        if (menuInfo == null) {
            return;
        }
        if (!(menuInfo instanceof AdapterContextMenuInfo)) {
            return;
        }


        AdapterContextMenuInfo mi = (AdapterContextMenuInfo) menuInfo;

        switch (mi.position) {
        case 0:

            menu.add("Product 1");

            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            break;
        case 1:
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            break;
        case 2:
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            break;
        case 3:
            menu.add("mouse menu");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            break;
        case 4:
            menu.add("panda menu");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            break;
        case 5:
            menu.add("rabbit menu");
            menu.add("Product 1");
            menu.add("Product 1");
            menu.add("Product 1");
            break;
        default:
            break;
        }
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        final Carousel carousel = (Carousel) findViewById(R.id.carousel);
        carousel.setOnItemClickListener(new OnItemClickListener() {



            public void onItemClick(CarouselAdapter<?> parent, View view,
                    int position, long id) {
                CarouselItem item = (CarouselItem) parent.getChildAt(position);

                // HERE: Force context menu
                carousel.showContextMenuForChild(item);
                Toast.makeText(
                        MainActivity.this,
                        String.format("%s has been clicked",
                                ((CarouselItem) parent.getChildAt(position))
                                        .getName()), Toast.LENGTH_SHORT).show();







            }

            @Override
            public void onCreateContextMenu(ContextMenu menu, View v,
                    ContextMenuInfo menuInfo) {

                // TODO Auto-generated method stub





            }

            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean onContextItemSelected(MenuItem item) {
                // TODO Auto-generated method stub
                return false;
            }});



        carousel.setOnItemSelectedListener(new OnItemSelectedListener() {

            public void onItemSelected(CarouselAdapter<?> parent, View view,
                    int position, long id) {

                final TextView txt = (TextView) (findViewById(R.id.selected_item));

                switch (position) {
                case 0:
                    txt.setText("The cat (Felis catus), also known as the domestic cat or housecat to distinguish it from other felids and felines, is a small, usually furry, domesticated, carnivorous mammal that is valued by humans for its companionship and for its ability to hunt vermin and household pests. Cats have been associated with humans for at least 9,500 years, and are currently the most popular pet in the world. Owing to their close association with humans, cats are now found almost everywhere in the world.");
                    break;
                case 1:
                    txt.setText("The hippopotamus (Hippopotamus amphibius), or hippo, from the ancient Greek for \"river horse\" (), is a large, mostly herbivorous mammal in sub-Saharan Africa, and one of only two extant species in the family Hippopotamidae (the other is the Pygmy Hippopotamus.) After the elephant, the hippopotamus is the third largest land mammal and the heaviest extant artiodactyl.");
                    break;
                case 2:
                    txt.setText("A monkey is a primate, either an Old World monkey or a New World monkey. There are about 260 known living species of monkey. Many are arboreal, although there are species that live primarily on the ground, such as baboons. Monkeys are generally considered to be intelligent. Unlike apes, monkeys usually have tails. Tailless monkeys may be called \"apes\", incorrectly according to modern usage; thus the tailless Barbary macaque is called the \"Barbary ape\".");
                    break;
                case 3:
                    txt.setText("A mouse (plural: mice) is a small mammal belonging to the order of rodents. The best known mouse species is the common house mouse (Mus musculus). It is also a popular pet. In some places, certain kinds of field mice are also common. This rodent is eaten by large birds such as hawks and eagles. They are known to invade homes for food and occasionally shelter.");
                    break;
                case 4:
                    txt.setText("The giant panda, or panda (Ailuropoda melanoleuca, literally meaning \"black and white cat-foot\") is a bear native to central-western and south western China.[4] It is easily recognized by its large, distinctive black patches around the eyes, over the ears, and across its round body. Though it belongs to the order Carnivora, the panda's diet is 99% bamboo.");
                    break;
                case 5:
                    txt.setText("Rabbits (or, colloquially, bunnies) are small mammals in the family Leporidae of the order Lagomorpha, found in several parts of the world. There are eight different genera in the family classified as rabbits, including the European rabbit (Oryctolagus cuniculus), cottontail rabbits (genus Sylvilagus; 13 species), and the Amami rabbit (Pentalagus furnessi, an endangered species on Amami, Japan)");

                    break;
                }

            }

            public void onNothingSelected(CarouselAdapter<?> parent) {
            }

        });

        registerForContextMenu(carousel);
    }

}
package com.carouseldemo.main;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.ContextMenu;
导入android.view.ContextMenu.ContextMenuInfo;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.MenuInflater;
导入android.view.view;
导入android.widget.ImageView;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.carouseldemo.controls.Carousel;
导入com.carouseldemo.controls.CarouselAdapter;
导入com.carouseldemo.controls.CarouselAdapter.AdapterContextMenuInfo;
导入com.carouseldemo.controls.CarouselAdapter.OnItemClickListener;
导入com.carouseldemo.controls.CarouselAdapter.OnItemSelectedListener;
导入com.carouseldemo.controls.CarouselItem;
公共类MainActivity扩展了活动{
@凌驾
公共布尔值onContextItemSelected(MenuItem项){
int id=item.getItemId();//您知道单击了哪个菜单
ImageView弹出窗口=新的ImageView(此);
//设置图像
popup.setImageResource(R.drawable.cat);//或setImageBitmap,
//或setImageUti等
//这将使ImageView填充整个内容区域。如果您不想使用其他布局,请将其包装
((FrameLayout)findviewbyd(android.R.id.content)).addView(弹出窗口);
返回super.onContextItemSelected(项目);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
super.onCreateOptions菜单(菜单);
MenuInflater充气机=getMenuInflater();
充气机。充气(R.menu.testmenu1,菜单);
//你的代码。。。
返回true;}//如果希望显示菜单,则返回true;否则返回false
@凌驾
public void onCreateContextMenu(ContextMenu,视图v,
上下文菜单信息(menuInfo){
//让自己做好准备,迎接意想不到的争论。。。
if(menuInfo==null){
返回;
}
if(!(适配器ContextMenuInfo的menuInfo实例)){
返回;
}
AdapterContextMenuInfo mi=(AdapterContextMenuInfo)菜单信息;
开关(mi位置){
案例0:
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
打破
案例1:
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
打破
案例2:
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
打破
案例3:
菜单。添加(“鼠标菜单”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
打破
案例4:
菜单。添加(“熊猫菜单”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
打破
案例5:
菜单。添加(“兔子菜单”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
菜单。添加(“产品1”);
打破
违约:
打破
}
super.onCreateContextMenu(menu,v,menuInfo);
}
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
最终转盘=(转盘)findViewById(R.id.Carousel);
carousel.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(旋转木马父级、视图、,
内部位置,长id){
CarouselItem项=(CarouselItem)parent.getChildAt(位置);
//此处:强制上下文菜单
旋转木马。showContextMenuForChild(项目);
Toast.makeText(
这个,,
String.format(“%s已被单击”,
((CarouselItem)parent.getChildAt(位置))
.getName()),Toast.LENGTH_SHORT.show();
}
@凌驾
public void onCreateContextMenu(ContextMenu,视图v,
上下文菜单信息(menuInfo){
//TODO自动生成的方法存根
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//TODO自动生成的方法存根
返回false;
}
@凌驾
公共布尔值onContextItemSelected(MenuItem项){
//TODO自动生成的方法存根
返回false;
}
menu.add(Menu.NONE, 1, Menu.None, "menu title");
ImageView popup = new ImageView(this);    
popup.setOnClickListener(new OnClickListener() {

     @Override
     public void onClick(View v) {
         ((FrameLayout) findViewById(android.R.id.content)).removeView(v);
     } 
});