这是一种方法,是我觉得简单易懂代码量较少的一种:

           /* 创建AlertDialog对象并显示 */
final AlertDialog alertDialog = new AlertDialog.Builder(LoginActivity.this).create();
alertDialog.show();
/* 添加对话框自定义布局 */
alertDialog.setContentView(R.layout.dialog_login);
/* 获取对话框窗口 */
Window window = alertDialog.getWindow();
/* 设置显示窗口的宽高 */
window.setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
/* 设置窗口显示位置 */
window.setGravity(Gravity.CENTER);
/* 通过window找布局里的控件 */
window.findViewById(R.id.login).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("log", "进入onclick函数体内");
// 隐藏对话框
alertDialog.dismiss();
//自己进行其他的处理
}
});
R.layout.dialog_login.xml (自己想要的样子需要在布局中设置好)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical"
android:background="@drawable/dialog_corner_bg"
android:layout_margin="20dp"
xmlns:android="http://schemas.android.com/apk/res/android"> <Button
android:padding="5dp"
android:layout_marginBottom="5dp"
android:id="@+id/login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@null"
android:text="OK"
android:textColor="@color/btn_txt_blue"
android:textSize="25sp"
android:textStyle="bold" /> </LinearLayout>

dialog_corner_bg.xml (对话框的背景)
<?xml version="1.0" encoding="utf-8"?>
<!-- 用于设置信息对话框的圆角 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="20dip"></corners>
<solid android:color="@color/white"></solid>
</shape>

效果如下图:

************************************************************************************************

这是另外一种方法:(需要设置合适的主题)

                final Dialog dialog2 = new Dialog(LoginActivity.this, R.style.ActionSheetDialogStyle);
LinearLayout view = (LinearLayout) LayoutInflater.from(LoginActivity.this).inflate(R.layout.dialog_forgotpwd, null);
TextView dismiss = (TextView) view.findViewById(R.id.btn_dismiss);
TextView forgotPin = (TextView) view.findViewById(R.id.btn_forgotpin);
TextView forgotPassword = (TextView) view.findViewById(R.id.btn_forgotpassword);
dismiss.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog2.dismiss();
}
});
forgotPin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { }
});
forgotPassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { }
}); dialog2.setContentView(view);
Window dialogWindow = dialog2.getWindow();
dialogWindow.setGravity(Gravity.BOTTOM);
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
lp.y = 30; //距离底部的高度
dialogWindow.setAttributes(lp);
dialog2.show();

style.xml

<style name="ActionSheetDialogStyle" parent="@android:style/Theme.Dialog">
<!-- 背景透明 -->
<item name="android:windowBackground">@drawable/email_dialogfrag_bg</item>
<item name="android:windowContentOverlay">@null</item>
<!-- 浮于Activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 边框 -->
<item name="android:windowFrame">@null</item>
<!-- Dialog以外的区域模糊效果 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 无标题 -->
<item name="android:windowNoTitle">true</item>
<!-- 半透明 -->
<item name="android:windowIsTranslucent">true</item>
<item name="android:color">@color/white</item>
</style>

效果如下图:

 

android开发学习 ------- 弹出框的更多相关文章

  1. Android 开发笔记 “弹出框”

    AlertDialog.Builder builder = new AlertDialog.Builder(Activity.this); builder.setMessage("Are y ...

  2. android 开发 制作弹出等待进度条

    技术点: dialog:ProgressBar:animated-rotate: 弹出框: import com.carspeak.client.R; import android.app.Dialo ...

  3. android 三种弹出框之一PopupWindow

    PopupWindow 在android的弹出框我目前了解到的是有三种:AlertDialog,PopupWindow,Activity伪弹框, AlertDialog太熟悉了,这里就不介绍了 就先看 ...

  4. Android 自定义界面的弹出框(可输入数据)

    上午写了一篇博文,介绍了如何定义从屏幕底部弹出PopupWindow,写完之后,突然想起之前写过自定义内容显示的弹出框,就随手写了两个实例,分享出来: 第一种实现方式:继承Dialog 1.1 线定义 ...

  5. windows phone 8.1开发:(消息弹出框)强大的ContentDialog

    原文出自:http://www.bcmeng.com/contentdialog/ 在应用开发中我们必不可少的会使用到消息框,windows phone8中的messagebox在windows ph ...

  6. Android窗口为弹出框样式

    1.XML android:theme="@android:style/Theme.Dialog <?xml version="1.0" encoding=&quo ...

  7. 【Android】各式各样的弹出框与对菜单键、返回键的监听

    Android自带各式各样的弹出框.弹出框也是安卓主要的组件之中的一个.同一时候安卓程序能够对菜单键.返回键的监听.但在安卓4.0之后就禁止对Home键的屏蔽与监听,强制保留为系统守护按键.假设非要对 ...

  8. Android 学习笔记之AndBase框架学习(二) 使用封装好的进度框,Toast框,弹出框,确认框...

    PS:渐渐明白,在实验室呆三年都不如在企业呆一年... 学习内容: 1.使用AbActivity内部封装的方法实现进度框,Toast框,弹出框,确认框...   AndBase中AbActivity封 ...

  9. android标题栏下面弹出提示框(一) TextView实现,带动画效果

    产品经理用的是ios手机,于是android就走上了模仿的道路.做这个东西也走了一些弯路,写一篇博客放在这里,以后自己也可用参考,也方便别人学习. 弯路: 1.刚开始本来用PopupWindow去实现 ...

随机推荐

  1. Android学习路线(十九)支持不同设备——支持不同(Android)平台版本号

    当最新的Android版本号为你的应用提供着非常棒的APIs时.你却要在很多其它的设备更新之前继续支持老的系统版本号.这篇课程怎样在继续支持低版本号的系统的情况下使用新版本号的高级API. Platf ...

  2. VUEX action解除页面耦合

    最近项目中需要用到vue+vuex来实现登出跳转功能,老大指派任务要用action解除页面耦合,刚从vue深渊晕晕乎乎爬出来的我是一脸懵逼啊...啥是解除耦合...网上vuex的资料太少了,vuex手 ...

  3. 追踪分布式Memcached默认的一致性hash算法

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  4. mysql命令行爱好者必备工具mycli

    mycli MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syn ...

  5. bash builtin eval

    1 在开始执行eval后面的命令之前eval主要做了哪些事情 1.1 去掉反斜杠的quoting 比如\$ac_optarg,会变成$ac_optarg. 1.2 去掉单引号的quoting 比如: ...

  6. Android Studio集成Genymotion 及Genymotion 配置ADB

    1.打开 Android Studio,依次[File]-[Settings],快捷键  Ctrl + Alt + S 2.在打开的 settings 界面里找到 plugins 设置项,点击右侧的“ ...

  7. XMU 1605 nc与数列 【动态规划】

    1605: nc与数列 Time Limit: 2000 MS  Memory Limit: 64 MBSubmit: 84  Solved: 13[Submit][Status][Web Board ...

  8. 常用的机器学习&数据挖掘知识点总结

    Basis(基础): MSE(Mean Square Error 均方误差),LMS(LeastMean Square 最小均方),LSM(Least Square Methods 最小二乘法),ML ...

  9. git 如何让单个文件回退到指定的版本【转】

    本文转载自:http://blog.csdn.net/ikscher/article/details/43851643 1.进入到文件所在文件目录,或者能找到文件的路径查看文件的修改记录 1 $ gi ...

  10. docker随谈

    最近在搞Docker,其实去年就听老师说过这个东西,说非常火,当时不以为然,还错把它当成docky.当时想想docky不就是一个快速启动工具么,有什么.现在想想真是惭愧... Docker的牛逼之处网 ...