2013-08-09 4 views
2

Я хочу, чтобы мое приложение Android отображало что-то вроде кнопки меню, но меню выскочит из изображения.Пользовательское меню Android из ImageView

this is an image. please upgrade your browser past DOS

+0

так, где проблема? атаковать onclicklistener для просмотра изображений и там показывать диалог? вы можете попробовать с контекстным меню вместо диалога –

+0

Не можете ли вы просто создать это маленькое меню (в красном «квадрате») и оживить его, чтобы он появился? – g00dy

+0

Я не совсем уверен, что вы хотите сделать. Однако для отображения всплывающего меню вы можете использовать PopupWindow http://developer.android.com/reference/android/widget/PopupWindow.html – Marqs

ответ

3

Вы можете использовать PopupWindow:

Класс активности:

общественный класс MainActivity расширяет активность {

ImageView mOptionsImage; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mOptionsImage = (ImageView) findViewById(R.id.imageView1); 
    mOptionsImage.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      LayoutInflater layoutInflater = (LayoutInflater) getBaseContext() 
        .getSystemService(LAYOUT_INFLATER_SERVICE); 
      View popupView = layoutInflater.inflate(R.layout.popup, null); 
      final PopupWindow popupWindow = new PopupWindow(popupView, 
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

      popupWindow.showAsDropDown(mButton, 0, v.getHeight()); 

      ListView list = (ListView) findViewById(R.id.list); 

      list.setOnItemClickListener(new OnItemClickListener() { 

       @Override 
       public void onItemClick(AdapterView<?> arg0, View arg1, 
         int arg2, long arg3) { 
        // SOME YOUR CODE 
        popupWindow.dismiss(); 
       } 
      }); 
     } 
    }); 
} 

activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 


<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/textView1" 
    android:layout_marginTop="34dp" 
    android:text="Button" /> 
</RelativeLayout> 

и popupWindow макета:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<ListView 
    android:id="@+id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
</ListView> </LinearLayout> 

Plese Примечание: вы не увидите никакого результата, пока ваш список не пуст, добавить некоторые кнопки, TextViews, или заполнить список с пунктами перед испытанием этого код .;)

1
ImageView imV = (ImageView) findViewById(R.id.imV); // if declared in XML 
imV.setOnClickListener(imVListener); 

View.OnClickListener imVListener = new View.OnClickListener() { 
    public void onClick(View v) { 
//you can use QuickAction menu to pop up 
} 
}; 

И link в меню QuickAction.

Смежные вопросы