本文介绍的是我自己做的一个简单的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. KMP算法的Next数组详解(转)

    转载请注明来源,并包含相关链接. 网上有很多讲解KMP算法的博客,我就不浪费时间再写一份了.直接推荐一个当初我入门时看的博客吧: http://www.cnblogs.com/yjiyjige/p/3 ...

  2. Java的byte数组

    今天我们讨论一下Java的byte数组.byte数组就是字节数组,每一位存一个字节.看下面程序,猜猜输出多少? package com.wjy.bytes; import java.io.File; ...

  3. PPPOE 模拟环境搭建

    这段时间.包含我自己測试OTT盒子 PPPOE的时候比較痛苦.要不就是在别人的位置上測试.要不就是借用PPPOE的设备,认为还是自己搭建一个PPPOE真实拨号上网的环境多好! 可是坑爹的win7找不到 ...

  4. 一次失败的刷题经历:[LeetCode]292之尼姆游戏(Nim Game)(转)

    最近闲来无事刷LeetCode,发现这道题的Accept Rate还是挺高的,尝试着做了一下,结果悲剧了,把过程写下来,希望能长点记性.该题的描述翻译成中文如下: 你正在和你的朋友玩尼姆游戏(Nim ...

  5. Python做的眼睛护士

    搞了两天终于搞定了,虽然还存在一点点小问题(窗口的显示位置应该设在(0,0)).但基本可以用了. 代码分两个部分.主界面和遮挡屏幕界面.主界面设置完时间后调用遮挡屏幕界面. 1.主界面(设置 工作时间 ...

  6. Android判断应用程序从后台回到前台

    MainActivity如下: package cc.testbackgroundtofront; import java.util.List; import android.app.Activity ...

  7. Jndi使用好处,与简单实例【JBOSS】

    JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有 ...

  8. DOM解析XML文件实例

    XML文件: response: <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www ...

  9. Oracle自增列创建方法

    最近在做Oracle的项目,由于以前没有接触过Oracle的开发,遇到了不少的问题,比如给Oracle表添加自增列,与SQL Server就不同. Oracle没有自增字段这样的功能,但是通过触发器( ...

  10. asp.net用户身份验证时读不到用户信息的问题 您的登录尝试不成功。请重试。 Login控件

    原文:asp.net用户身份验证时读不到用户信息的问题 您的登录尝试不成功.请重试. Login控件 现象1.asp.net使用自定义sql server身份验证数据库,在A机器新增用户A,可以登录成 ...