zoukankan      html  css  js  c++  java
  • 简单的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>

      以上是完整的代码。

  • 相关阅读:
    【转】MFC中png格式图片贴图的实现
    【转】Windows 中不规则窗体的编程实现
    【转】MFC添加背景图片方法的三种方法
    【转】mfc win7获得管理员权限 使用WIN7风格 使用当前系统风格
    【转】双缓冲讲解及界面贴图
    【转】[内核/驱动]驱动中获取进程全路径和注册表全路径
    【转】Visual C++中DDB与DIB位图编程全攻略(转)
    【转】vs2010中添加splashScreen
    【转】一个在内存里搜索QQ号码的源码,源自看雪论坛
    输出JSON
  • 原文地址:https://www.cnblogs.com/swalka/p/4725319.html
Copyright © 2011-2022 走看看