简单的dialog菜单
本文介绍的是我自己做的一个简单的dialog菜单,可以直接植入到类中。
方法代码:
/** 显示一个靠右上的dialog列表菜单*/
private void showTopBarRightButtonDropListDialog() { final Dialog dialog = new Dialog(this, R.style.DialogStyle); LinearLayout linearLayout = new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL); ViewGroup.LayoutParams params0 = new ViewGroup.LayoutParams(200, ViewGroup.LayoutParams.WRAP_CONTENT); linearLayout.setLayoutParams(params0); // 获取屏幕的信息 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); // 添加子视图 Button btn1 = new Button(this); Button btn2 = new Button(this); Button btn3 = new Button(this); Button btn4 = new Button(this); Button btn5 = new Button(this); btn1.setText("1"); btn2.setText("2"); btn3.setText("3"); btn4.setText("4"); btn5.setText("5"); LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int)(50 * dm.density)); btn1.setLayoutParams(params1); btn2.setLayoutParams(params1); btn3.setLayoutParams(params1); btn4.setLayoutParams(params1); btn5.setLayoutParams(params1); btn1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { dialog.dismiss(); } }); btn2.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { dialog.dismiss(); } }); btn3.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { dialog.dismiss(); } }); linearLayout.addView(btn1); linearLayout.addView(btn2); linearLayout.addView(btn3); linearLayout.addView(btn4); linearLayout.addView(btn5); dialog.setContentView(linearLayout); dialog.setCanceledOnTouchOutside(true); dialog.show(); setDialogSize(dialog); }
private void setDialogSize(Dialog dg) {
Window dialogWindow = dg.getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
dialogWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
dialogWindow.setGravity(Gravity.RIGHT | Gravity.TOP);
//显示的坐标
lp.x = 150;
lp.y = 50;
dialogWindow.setAttributes(lp);
}
R.Style.DialogStyle内容:
<style name="DialogStyle"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:backgroundDimEnabled">true</item> </style>
以上是完整的代码。