Android漂亮的对话框项目sweet-alert-dialog

简介:

今天看到一个漂亮的dialog,转载共享下,原文链接:http://blog.csdn.net/cauchyweierstrass/article/details/46335143

漂亮的对话框 sweet-alert-dialog

项目地址: https://github.com/pedant/sweet-alert-dialog

这是个AndroidStudio的工程,并且里面还依赖于materialish-progress工程,也是个AS的工程。于是打算弄一个eclipse的版本并且将这两个工程融合在一起作为一个库工程XAlertDialogLibrary。使用时将其作为库导入项目中即可。

效果如下



使用起来非常简单,测试代码如下:

MainActivity.java

public class MainActivity extends Activity implements View.OnClickListener {

    private int i = -1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.basic_test).setOnClickListener(this);
        findViewById(R.id.under_text_test).setOnClickListener(this);
        findViewById(R.id.error_text_test).setOnClickListener(this);
        findViewById(R.id.success_text_test).setOnClickListener(this);
        findViewById(R.id.warning_confirm_test).setOnClickListener(this);
        findViewById(R.id.warning_cancel_test).setOnClickListener(this);
        findViewById(R.id.custom_img_test).setOnClickListener(this);
        findViewById(R.id.progress_dialog).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.basic_test:
                // default title "Here's a message!"
                SweetAlertDialog sd = new SweetAlertDialog(this);
                sd.setCancelable(true);
                sd.setCanceledOnTouchOutside(true);
                sd.show();
                break;
            case R.id.under_text_test:
                new SweetAlertDialog(this)
                        .setContentText("It's pretty, isn't it?")
                        .show();
                break;
            case R.id.error_text_test:
                new SweetAlertDialog(this, SweetAlertDialog.ERROR_TYPE)
                        .setTitleText("Oops...")
                        .setContentText("Something went wrong!")
                        .show();
                break;
            case R.id.success_text_test:
                new SweetAlertDialog(this, SweetAlertDialog.SUCCESS_TYPE)
                        .setTitleText("Good job!")
                        .setContentText("You clicked the button!")
                        .show();
                break;
            case R.id.warning_confirm_test:
                new SweetAlertDialog(this, SweetAlertDialog.WARNING_TYPE)
                        .setTitleText("Are you sure?")
                        .setContentText("Won't be able to recover this file!")
                        .setConfirmText("Yes,delete it!")
                        .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
                        @Override
                        public void onClick(SweetAlertDialog sDialog) {
                            // reuse previous dialog instance
                            sDialog.setTitleText("Deleted!")
                                    .setContentText("Your imaginary file has been deleted!")
                                    .setConfirmText("OK")
                                    .setConfirmClickListener(null)
                                    .changeAlertType(SweetAlertDialog.SUCCESS_TYPE);
                        }
                        })
                        .show();
                break;
            case R.id.warning_cancel_test:
                new SweetAlertDialog(this, SweetAlertDialog.WARNING_TYPE)
                        .setTitleText("Are you sure?")
                        .setContentText("Won't be able to recover this file!")
                        .setCancelText("No,cancel plx!")
                        .setConfirmText("Yes,delete it!")
                        .showCancelButton(true)
                        .setCancelClickListener(new SweetAlertDialog.OnSweetClickListener() {
                            @Override
                            public void onClick(SweetAlertDialog sDialog) {
                                // reuse previous dialog instance, keep widget user state, reset them if you need
                                sDialog.setTitleText("Cancelled!")
                                        .setContentText("Your imaginary file is safe :)")
                                        .setConfirmText("OK")
                                        .showCancelButton(false)
                                        .setCancelClickListener(null)
                                        .setConfirmClickListener(null)
                                        .changeAlertType(SweetAlertDialog.ERROR_TYPE);

                                // or you can new a SweetAlertDialog to show
                               /* sDialog.dismiss();
                                new SweetAlertDialog(SampleActivity.this, SweetAlertDialog.ERROR_TYPE)
                                        .setTitleText("Cancelled!")
                                        .setContentText("Your imaginary file is safe :)")
                                        .setConfirmText("OK")
                                        .show();*/
                            }
                        })
                        .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
                            @Override
                            public void onClick(SweetAlertDialog sDialog) {
                                sDialog.setTitleText("Deleted!")
                                        .setContentText("Your imaginary file has been deleted!")
                                        .setConfirmText("OK")
                                        .showCancelButton(false)
                                        .setCancelClickListener(null)
                                        .setConfirmClickListener(null)
                                        .changeAlertType(SweetAlertDialog.SUCCESS_TYPE);
                            }
                        })
                        .show();
                break;
            case R.id.custom_img_test:
                new SweetAlertDialog(this, SweetAlertDialog.CUSTOM_IMAGE_TYPE)
                        .setTitleText("Sweet!")
                        .setContentText("Here's a custom image.")
                        .setCustomImage(R.drawable.custom_img)
                        .show();
                break;
            case R.id.progress_dialog:
                final SweetAlertDialog pDialog = new SweetAlertDialog(this, SweetAlertDialog.PROGRESS_TYPE)
                        .setTitleText("Loading");
                pDialog.show();
                pDialog.setCancelable(false);
                new CountDownTimer(800 * 7, 800) {
                    public void onTick(long millisUntilFinished) {
                        // you can change the progress bar color by ProgressHelper every 800 millis
                        i++;
                        switch (i){
                            case 0:
                                pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.blue_btn_bg_color));
                                break;
                            case 1:
                                pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.material_deep_teal_50));
                                break;
                            case 2:
                                pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.success_stroke_color));
                                break;
                            case 3:
                                pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.material_deep_teal_20));
                                break;
                            case 4:
                                pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.material_blue_grey_80));
                                break;
                            case 5:
                                pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.warning_stroke_color));
                                break;
                            case 6:
                                pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.success_stroke_color));
                                break;
                        }
                    }

                    public void onFinish() {
                        i = -1;
                        pDialog.setTitleText("Success!")
                                .setConfirmText("OK")
                                .changeAlertType(SweetAlertDialog.SUCCESS_TYPE);
                    }
                }.start();
                break;
        }
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#FFF"
            xmlns:android="http://schemas.android.com/apk/res/android">

    <RelativeLayout android:layout_width="match_parent"
                    android:paddingBottom="10dp"
                  android:layout_height="wrap_content">

        <ImageView
               android:id="@+id/logo_img"
               android:layout_width="180dp"
               android:layout_height="wrap_content"
               android:src="@drawable/logo_big"
               android:layout_marginTop="10dp"
               android:layout_marginBottom="15dp"
               android:layout_centerHorizontal="true"
               android:contentDescription="@string/app_name"/>

        <TextView
            android:id="@+id/txt_0"
            android:layout_alignLeft="@id/logo_img"
            android:layout_below="@id/logo_img"
            android:layout_marginLeft="15dp"
            android:text="show material progress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="14sp"
            android:textColor="#797979"/>

        <Button
            android:layout_centerHorizontal="true"
            android:layout_below="@id/txt_0"
            android:id="@+id/progress_dialog"
            style="@style/dialog_blue_button"
            android:layout_margin="10dp"
            android:text="Try me!"/>

        <TextView
            android:id="@+id/txt_1"
            android:layout_alignLeft="@id/logo_img"
            android:layout_below="@id/progress_dialog"
            android:layout_marginLeft="15dp"
            android:text="A basic message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="14sp"
            android:textColor="#797979"/>

        <Button
            android:layout_centerHorizontal="true"
            android:layout_below="@id/txt_1"
            android:id="@+id/basic_test"
            style="@style/dialog_blue_button"
            android:layout_margin="10dp"
            android:text="Try me!"/>

        <TextView
                android:id="@+id/txt_2"
                android:layout_alignLeft="@id/logo_img"
                android:layout_below="@id/basic_test"
                android:layout_marginLeft="15dp"
                android:text="A title with a text under"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:layout_marginTop="15dp"
                android:textColor="#797979"/>

        <Button
                android:layout_centerHorizontal="true"
                android:layout_below="@id/txt_2"
                android:id="@+id/under_text_test"
                style="@style/dialog_blue_button"
                android:layout_margin="10dp"
                android:text="Try me!"/>

        <TextView
                android:id="@+id/txt_3"
                android:layout_alignLeft="@id/logo_img"
                android:layout_below="@id/under_text_test"
                android:layout_marginLeft="15dp"
                android:text="show error message"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:layout_marginTop="15dp"
                android:textColor="#797979"/>

        <Button
                android:layout_centerHorizontal="true"
                android:layout_below="@id/txt_3"
                android:id="@+id/error_text_test"
                style="@style/dialog_blue_button"
                android:layout_margin="10dp"
                android:text="Try me!"/>

        <TextView
                android:id="@+id/txt_4"
                android:layout_alignLeft="@id/logo_img"
                android:layout_below="@id/error_text_test"
                android:layout_marginLeft="15dp"
                android:text="A success message"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:layout_marginTop="15dp"
                android:textColor="#797979"/>

        <Button
                android:layout_centerHorizontal="true"
                android:layout_below="@id/txt_4"
                android:id="@+id/success_text_test"
                style="@style/dialog_blue_button"
                android:layout_margin="10dp"
                android:text="Try me!"/>


        <TextView
                android:id="@+id/txt_5"
                android:layout_alignLeft="@id/logo_img"
                android:layout_below="@id/success_text_test"
                android:layout_marginLeft="15dp"
                android:text="A warning message, with a listener bind to the Confirm-button..."
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:layout_marginTop="15dp"
                android:textColor="#797979"/>

        <Button
                android:layout_centerHorizontal="true"
                android:layout_below="@id/txt_5"
                android:id="@+id/warning_confirm_test"
                style="@style/dialog_blue_button"
                android:layout_margin="10dp"
                android:text="Try me!"/>

        <TextView
                android:id="@+id/txt_6"
                android:layout_alignLeft="@id/logo_img"
                android:layout_below="@id/warning_confirm_test"
                android:layout_marginLeft="15dp"
                android:text="A warning message, with listeners bind to Cancel and Confirm button..."
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:layout_marginTop="15dp"
                android:textColor="#797979"/>

        <Button
                android:layout_centerHorizontal="true"
                android:layout_below="@id/txt_6"
                android:id="@+id/warning_cancel_test"
                style="@style/dialog_blue_button"
                android:layout_margin="10dp"
                android:text="Try me!"/>

        <TextView
                android:id="@+id/txt_7"
                android:layout_alignLeft="@id/logo_img"
                android:layout_below="@id/warning_cancel_test"
                android:layout_marginLeft="15dp"
                android:text="A message with a custom icon"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:layout_marginTop="15dp"
                android:textColor="#797979"/>

        <Button
                android:layout_centerHorizontal="true"
                android:layout_below="@id/txt_7"
                android:id="@+id/custom_img_test"
                style="@style/dialog_blue_button"
                android:layout_margin="10dp"
                android:text="Try me!"/>

    </RelativeLayout>
</ScrollView>


XAlertDialogLibrary(eclipse):点此下载

相关文章
|
5月前
|
Web App开发 移动开发 小程序
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,显示“网络不给力,请稍后再试”,预发内网版本不能使用,线上版本可以正常使用,这个是什么原因啊,是某些参数没有配置吗,还是说是一些参数改错了?
63 2
|
5月前
|
XML Java Android开发
Android App开发实战项目之模仿美图秀秀的抠图工具(附源码和演示视频 简单易懂 可直接使用)
Android App开发实战项目之模仿美图秀秀的抠图工具(附源码和演示视频 简单易懂 可直接使用)
50 0
|
8天前
|
Android开发
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
3 0
|
5月前
|
XML 前端开发 Java
Android App实战项目之实现手写签名APP功能(附源码,简单易懂 可直接实用)
Android App实战项目之实现手写签名APP功能(附源码,简单易懂 可直接实用)
51 0
|
2月前
|
Android开发
[Android]AlertDialog对话框
[Android]AlertDialog对话框
19 0
|
3月前
|
Java Android开发 C++
安卓SO层开发 -- 第一个NDK项目
安卓SO层开发 -- 第一个NDK项目
16 0
|
4月前
|
IDE 开发工具 Android开发
Android Studio 下发布项目成APK文件
Android Studio 下发布项目成APK文件
119 1
|
4月前
|
JavaScript Android开发
Cordova 打包 Vue 项目到Android打开白屏
Cordova 打包 Vue 项目到Android打开白屏
|
5月前
|
开发工具 Android开发 开发者
Android 项目编译 Gradle 配置说明
Android 项目编译 Gradle 配置说明
155 0
|
5月前
|
Web App开发 JSON Android开发
【Android App】实战项目之仿微信的视频通话(附源码和演示 超详细必看)
【Android App】实战项目之仿微信的视频通话(附源码和演示 超详细必看)
99 0