我知道如何使用Java或XML制作android菜单以及如何使用或调用但现在我面临一个新的情况,即我想在特定的地方打开菜单,就像我点击图像而不是菜单弹出那个形象的地方。
我该怎么做?
答案 0 :(得分:3)
以下代码将帮助您在动态位置打开弹出窗口:
public void showMenuPopUp(final View view, final Context mCtx ) {
LayoutInflater layoutInflater = (LayoutInflater) mCtx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.menu_popup, null);
popupWindow = new PopupWindow(popupView, LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, true);
popupWindow.setFocusable(true);
popupWindow.update();
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setOutsideTouchable(true);
popupWindow.setTouchInterceptor(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
popupWindow.dismiss();
return true;
}
return false;
}
});
Button btn1= (Button) popupView.findViewById(R.id.btn1);
Button (new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// button click event
popupWindow.dismiss();
}
});
popupWindow.showAsDropDown(view, 0, 0);
}
视图是您必须打开弹出窗口的视图
要在图像上打开此弹出窗口,请单击写入图像的onClickLsitener,如下所示:
ImageView img = (ImageView) findViewById(R.id.myImageId);
img.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// your code here
showMenuPopUp(v,Activity.this);
}
});
答案 1 :(得分:0)
我已回答类似的问题here,我在该示例中使用了 PopUpWindow ,您也可以使用 DialogFragment 但略微最小的选项,两者都支持自定义布局看起来像菜单。您可以在屏幕上单击的按钮或操作栏按钮
上执行类似选项你有两个选项两个使用popupwindow执行此操作,单击一个按钮就可以执行1)showAsDropDown(findViewbyId(R.id.menuitem),0,0)
用于弹出窗口,这很好,因为它看起来像是从你单击的按钮弹出或
2)showAtLocation()
它具有重力属性,如 X 和 Y 位置,您可以在屏幕中提到您希望菜单出现在屏幕上的哪个位置