自定义dialog

原创 2012年03月23日 23:24:15

使用Dialog创建dialog时,即使不设置标题,标题部分依然存在,而使用AlertDialog不存在这个问题。不过在一些手机上会存在一个bug:虽然没有标题栏,但是标题栏所占的扣减还是存在的,大约有50dp左右的高度。下面是一个设置自定义对话框的demo。


布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center"
     >

    <Button 
        android:id="@+id/take_picture_btn"
        android:text="@string/take_picture"
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:gravity="center"
        />

    <Button
        android:id="@+id/take_video_btn"
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:text="@string/take_video" 
        />

</LinearLayout>

java代码:

private void createControlPanel() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    View layout = inflater.inflate(R.layout.control_panel, null);
    Button takePictureBtn = (Button) layout.findViewById(R.id.take_picture_btn);
    takePictureBtn.setOnClickListener(new Button.OnClickListener() {
      @Override
      public void onClick(View v) {
        // Does some things.
      }
    });

    final Button takeVideoBtn = (Button) layout.findViewById(R.id.take_video_btn);
    takeVideoBtn.setOnClickListener(new Button.OnClickListener() {

      @Override
      public void onClick(View v) {
        // Does ....
      }
    });
    builder.setView(layout);  //这句非常重要
    builder.setOnKeyListener(new DialogInterface.OnKeyListener() {
      @Override
      public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {  //点击返回键时,需要做出的反应
          // Does ...
          return true;
        }
        return false;
      }
    });
    dialog = builder.create();
  }

设置Dialog的参数,需要在show()方法后面设置:

    dialog.show()
    WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
    params.alpha = 0.8f; //透明度
    params.width = 460;  //dialog宽度
    params.y = height -20; //显示位置,默认居中显示
    controlPanel.getWindow().setAttributes(params);


自定义Dialog的简单实现

自定义Dialog的详细步骤(实现自定义样式一般原理) 发表于2016/3/22 22:12:57  1410人阅读 分类: android开发 转载请标注转载http://bl...
  • u014628886
  • u014628886
  • 2016年04月11日 22:36
  • 28381

Android之UI--打造万能自定义Dialog

这里写链接内容>转载请标明出处: http://blog.csdn.net/android_it/article/details/51161038 本文出自:【冯帅的CSDN博客】在我们开发ap...
  • android_it
  • android_it
  • 2016年04月15日 13:38
  • 14593

Android 简单的自定义Dialog

效果图 Dialog的详细用法看这篇博客:http://blog.csdn.net/zhuwentao2150/article/details/51478053我们自定义的CustomDialog是...
  • zhuwentao2150
  • zhuwentao2150
  • 2016年08月19日 23:25
  • 3766

[Android]自定义万能Dialog

在我们开发Android项目的时候,难免需要制作各式各样的Dialog,例如:
  • u011596810
  • u011596810
  • 2016年05月25日 21:36
  • 2376

Android 自定义Dialog的实现

最新实现了一个自定义Dialog的需求,先看看效果图: 下面说说如何实现:首先需要自定义一个Dialog类,继承自android.app.Dialog类。这个Dialog类就是要显示的对话框...
  • fenggering
  • fenggering
  • 2017年01月25日 16:16
  • 11414

Android中自定义Dialog常用的两种方式

Android中自定义Dialog常用的两种方式   第一种:   my_dialog.xml
  • shuipingzildy
  • shuipingzildy
  • 2013年11月26日 17:22
  • 1288

浅谈android中的自定义封装易用的Dialog

好久没写android的博客,最近在做一个android的项目,里面用到我们经常用的一个控件就是对话框,大家都知道android自带的对话框是很丑的,android5.x之后除外.所以就出现了自定义v...
  • u013064109
  • u013064109
  • 2016年07月22日 03:48
  • 38758

自定义的Dialog

原文地址:http://www.jianshu.com/p/e588d74b5c9f 这是一个自定义的dialog,可以从屏幕底部弹出 第一步、自定义样式 ...
  • qq_28746251
  • qq_28746251
  • 2016年05月18日 21:03
  • 834

一个简单的自定义Dialog

项目中会有各种各样的dialog弹窗,每个都拿布局去写很烦,以前写过一个多配置的dialog框架,没带到新公司,没事的时候写了一个简洁版的。 支持有无标题,支持替换内容View。支持只显示确定按钮,...
  • gengqiquan
  • gengqiquan
  • 2016年09月21日 15:28
  • 3877

自定义Dialog的详细步骤(实现自定义样式一般原理)

自定义Dialog的详细步骤(实现自定义样式一般原理)        现在很多App的提示对话框都非常有个性,然而你还用系统的对话框样式,是不是觉得很落后呢,今天我就给大家讲讲怎样自定义自己的Dial...
  • oQiHaoGongYuan
  • oQiHaoGongYuan
  • 2016年03月22日 22:12
  • 20928
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义dialog
举报原因:
原因补充:

(最多只允许输入30个字)