本文介绍的是我自己做的一个简单的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>

  以上是完整的代码。

简单的dialog菜单的更多相关文章

  1. dialog 菜单

    dialog 菜单 # 默认将所有输出用 stderr 输出,不显示到屏幕 使用参数 --stdout 可将选择赋给变量 # 退出状态 0正确 1错误 窗体类型 --calendar # 日历 --c ...

  2. jQuery简单的手风琴菜单

    查看效果:http://keleyi.com/keleyi/phtml/menu/5.htm 本菜单的HTML代码和JS代码都简洁,完整源代码: <!DOCTYPE html PUBLIC &q ...

  3. Python简单实现多级菜单

    # -*- coding: utf-8 -*- # @Time : 2018-06-01 13:40 # @Author : 超人 # @Email : huxiaojiu111@gmail.com ...

  4. 【shell 练习5】编写简单的多级菜单

    一.简单的多级菜单 [root@web129 ~]# cat menu.sh #!/bin/bash #shell菜单演示 function menu() { echo -e `date` cat & ...

  5. EasyUI+zTree实现简单的树形菜单切换

    使用easyui_ztree实现简单的树形菜单切换效果 <!DOCTYPE html> <html> <head> <meta charset="U ...

  6. WPF一个简单的垂直菜单样式的实现

    以前制作类似于垂直菜单功能的控件我都是Listbox和一个Popup实现的,今天尝试着用Menu做了一个简单垂直菜单,就当是做了个小练习写了这篇随笔~: 有什么不对的地方希望大家指正,分享和记录也是一 ...

  7. dialog 菜单实例

    dislog 菜单实例 while : do clear menu=`dialog --title system custom` [ $? -eq ] && echo "$m ...

  8. 简单的 Android 菜单

    Android 创建简单的菜单 一:上下文菜单: 1.在 res 下创建菜单项资源文夹 menu app->右击res->new->android resourse director ...

  9. 简单的js菜单

    <!DOCTYPE html> <html> <head> <title>hovertree</title><base target= ...

随机推荐

  1. Android自己定义组件系列【2】——Scroller类

    在上一篇中介绍了View类的scrollTo和scrollBy两个方法,对这两个方法不太了解的朋友能够先看<自己定义View及ViewGroup> scrollTo和scrollBy尽管实 ...

  2. Cygwin下vim按方向键出现ABCD;

    1:乱码解决Option->Text设置编码 2:vim按方向键出现A.B.C.D 解决:--$ cd /usr/share/vim/vim73 (ps:看你的版本号.假设没有这个文件可能是/u ...

  3. 创建和关联内容数据库到指定Web应用程序和站点集

    创建和关联内容数据库到指定Web应用程序和站点集         一个Web应用程序不限于使用单个内容数据库.SharePoint同意你关联多个内容数据库到Web应用程序.原因之中的一个是基于内容数据 ...

  4. RabbitMq消息序列化简述

    涉及网络传输的应用.序列化不可避免. 发送端以某种规则将消息转成byte数组进行发送. 接收端则以约定的规则进行byte[]数组的解析. 序列化的选择能够是jdk序列化,hessian,jackson ...

  5. Js中的onblur和onfocus事件

    html页面中,诸如按钮.文本框等可视元素都具有拥有和失去焦点的事件,这些事件在响应鼠标或键盘动作时都可激发预设的操作.本文以文本框获得和失去焦点为例简单讲解onfocus和onblur的应用. 一. ...

  6. 使用Maven管理Spring

    原文链接: Spring with Maven原文日期: 2013年04月17日翻译日期: 2014年06月29日翻译人员: 铁锚 1. 概述本教程向您展示怎样通过 Maven 管理 Spring 的 ...

  7. _tkinter.TclError: no display name and no $DISPLAY environment variable

    _tkinter.TclError: no display name and no $DISPLAY environment variable 这是在使用cocos2d-x的pluginx时遇到的一个 ...

  8. Android PackageInstaller 安装和卸载

    应用的安装方式:adb install或者下载安装 过程分析请參考老罗的blog,这里记录一下第三方应用程序安装apk的过程. 安装的过程主要是调用PackageInstaller这个App,源码的位 ...

  9. Codeforces 32E Hide-and-Seek 乞讨2关于镜面反射点 计算几何

    主题链接:点击打开链接 必须指出的是,反射镜和2个人共线是不是障碍,但根据该壁其他情况 #include<cstdio> #include<iostream> #include ...

  10. NET 分布式架构开发项目实战

    .NET 分布式架构开发项目实战 从头到尾,一步一步讲述一个真实的项目实战,关注点主要是架构的思考和实现,以及如何解决平时项目遇到的一些问题. 同时也司公布源代码. 如何构建高性能,稳定SOA应用之- ...