实现自定义的dialog(类似QQ点击退出后弹出的对话框)

这个是好久之前就做的了,然后看到群里总会有人在问自定义dialog的问题,说明就打算po上来,也让自己以后再开发时能够直接调用,找资源太麻烦了。实现效果很原来是真的很简单的。

按照惯例,先上图(懒得截图了,就直接po上应用里实现的效果图):

然后实现是很简单的:

布局:alert_dialog_layout.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_height="wrap_content"
    android:background="@drawable/alertdialog_bg" >

    <LinearLayout
        android:id="@+id/btnSet"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom"
        android:layout_marginTop="20dp"
        android:orientation="vertical" >

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@drawable/alertdialog_bg_line" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/alert_btn_back"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="#00ffffff"
                android:text="回到应用"
                android:textColor="#4e69f1"
                android:textSize="15sp" />

            <View
                android:layout_width="1px"
                android:layout_height="match_parent"
                android:background="@drawable/alertdialog_bg_line_h" />

            <Button
                android:id="@+id/alert_btn_exit"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="#00ffffff"
                android:text="退出应用"
                android:textColor="#4e69f1"
                android:textSize="15sp" />
        </LinearLayout>
    </LinearLayout>

    <TextView
        android:id="@+id/str_logout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/btnSet"
        android:layout_centerInParent="true"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp"
        android:gravity="center_horizontal"
        android:text="真的要退出吗?(⊙ ︿ ⊙)"
        android:textSize="16sp" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/str_logout"
        android:layout_alignParentTop="true"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp"
        android:gravity="center_horizontal"
        android:text="退出程序"
        android:textSize="18sp" />

</RelativeLayout>

JAVA代码的实现:

private void creatAlertDialog() {
		myDialog = new AlertDialog.Builder(MainActivity.this).create();

		myDialog.show();

		myDialog.getWindow().setLayout(750,450);
		myDialog.getWindow().setGravity(Gravity.CENTER);

		myDialog.getWindow().setContentView(R.layout.alert_dialog_layout);

		myDialog.getWindow().findViewById(R.id.alert_btn_back)
				.setOnClickListener(new View.OnClickListener() {

					@Override
					public void onClick(View v) {

						myDialog.dismiss();

					}

				});
		myDialog.getWindow().findViewById(R.id.alert_btn_exit)
				.setOnClickListener(new OnClickListener() {

					@Override
					public void onClick(View v) {
						ActivityCollector.finishAll();
					}
				});
	}

就是这样了,很简单,美观上还可以再调整调整,这问题不大。

时间: 2024-10-10 04:15:11

实现自定义的dialog(类似QQ点击退出后弹出的对话框)的相关文章

android如何写一个自定义的dialog可以在Title的位置弹出来

先上效果图: Title的Layout为: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/title_h

从仿QQ消息提示框来谈弹出式对话框

<代码里的世界> -UI篇 用文字札记描绘自己 android学习之路 转载请保留出处 by Qiao http://blog.csdn.net/qiaoidea/article/details/45896477 [导航] - 自定义弹出式对话框的简单用法 列举各种常见的对话框实现方案 1.概述 android原生控件向来以丑著称(新推出的Material Design当另说),因此几乎所有的应用都会特殊定制自己的UI样式.而其中弹出式提示框的定制尤为常见,本篇我们将从模仿QQ退出提示框来看一

jQuery Dialog弹出层对话框插件

Dialog.js的相关注释已经添加,可以按照注释,进行相关样式的修改,适用于自定义的各个系统! dialog.js 1 /** 2 * jQuery的Dialog插件. 3 * 4 * @param object content 5 * @param object options 选项. 6 * @return 7 */ 8 function Dialog(content, options) 9 { 10 var defaults = { // 默认值. 11 title:'标题', // 标

[c/c++] programming之路(2)、kill QQ,弹出系统对话框,吃内存等

一.删除文件 二.盗取密码的原理 1 #include<stdlib.h> 2 3 //杀掉QQ,然后提示网络故障,请重新登陆,弹出高仿界面,获取账号密码,然后打开QQ进行登录 4 void main(){ 5 system("taskkill /f /im QQ.exe"); 6 system("pause"); 7 system("D:\\QQ\\Bin\\QQScLauncher.exe"); 8 } 三.弹出系统对话框 1 #

【转】swift实现ios类似微信输入框跟随键盘弹出的效果

swift实现ios类似微信输入框跟随键盘弹出的效果 为什么要做这个效果 在聊天app,例如微信中,你会注意到一个效果,就是在你点击输入框时输入框会跟随键盘一起向上弹出,当你点击其他地方时,输入框又会跟随键盘一起向下收回,二者完全无缝连接,那么这是怎么实现的呢,也许你会说直接在键盘弹出的时候把输入框也向上移动不就行了?但是我使用这种方法的时候,发现效果十分不理想,会有明显的滞后现象,原因有以下几点: 键盘弹出动画并不是匀速,键盘和输入框的时间曲线不完全一致,运动不同步 各种键盘的高度不一样(比如

自定义Toast解决快速点击时重复弹出,排队无止尽

解决办法:自定义MyToast类: public class MyToast { /** 之前显示的内容 */ private static String oldMsg ; /** Toast对象 */ private static Toast toast = null ; /** 第一次时间 */ private static long oneTime = 0 ; /** 第二次时间 */ private static long twoTime = 0 ; /** * 显示Toast * @p

Android封装类似微信的顶部TitleBar弹出的PopupWindow代码

Android仿微信顶部titlebar,点击加号弹出的PopupWindow,是封装好的PopupWindow,直接拿来用即可,先看效果图:  调用代码非常简单,这是MainActivity的代码: public class MainActivity extends AppCompatActivity { private TitlePopup titlePopup; @Override protected void onCreate(Bundle savedInstanceState) { s

【Android】类似QQ风格的popupwindow弹窗效果

[Android]类似QQ风格的popupwindow弹窗效果 该源码主要是实现类似QQ风格的popupwindow弹出窗效果,出现时有遮挡图层,消失时无遮挡图层. 下载地址:http://www.devstore.cn/code/info/273.html

Android开发实战之底部Dialog弹出效果

在Android开发中,有很多情况下我们需要使用到对话框,遗憾的是,安卓自带的对话框样式不能满足我们实际的需要,所以往往需要我们自定义对话框,具体做法:写一个对话框继承自Dialog实现他的一个构造方法(取决于你的用法),在OnCreate()中进行处理.当然更多情况下,你是不需要自己去写的,会抄代码一样也是一种本事,这里我介绍一种底部弹出的对话框,希望对你的学习和工作有所帮助,下面是效果图: 下面介绍具体做法: 导入依赖库: dependencies { compile 'com.github