Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog)

Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog)

Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog)是一个套制作精美、动画效果出色生动的Android对话、消息提示框,如图所示



SweetAlertDialog(sweet-alert-dialog)在github上的项目主页是:https://github.com/pedant/sweet-alert-dialog
需要注意的是,SweetAlertDialog(sweet-alert-dialog)作为库,其自身又依赖另外一个github上的开源库materialish-progress(其在github上的项目主页是:https://github.com/pnikosis/materialish-progress )。如果使用SweetAlertDialog(sweet-alert-dialog),则需要再把materialish-progress也导入到Eclipse中作为库被SweetAlertDialog(sweet-alert-dialog)引用。

(注意:导入SweetAlertDialog时,下属的layout大概第116行会报错,需改成 wheel:matProg_progressIndeterminate="true" ,

其中需要修改的matProg_progressIndeterminate,在materialish-progress/res/values/attrs的第5行

贴一部分SweetAlertDialog(sweet-alert-dialog)在demo中的代码:

package cn.pedant.SweetAlert.sample;

import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;

import cn.pedant.SweetAlert.SweetAlertDialog;

public class SampleActivity extends Activity implements View.OnClickListener {

	private int i = -1;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.sample_activity);
		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)
		<span style="white-space:pre">	</span>.setTitleText("Are you sure?")
		<span style="white-space:pre">	</span>.setContentText("Won't be able to recover this file!").setCancelText("No,cancel plx!")
		<span style="white-space:pre">	</span>.setConfirmText("Yes,delete it!").showCancelButton(true)
		<span style="white-space:pre">	</span>.setCancelClickListener(new SweetAlertDialog.OnSweetClickListener() {
		@Override
		public void onClick(SweetAlertDialog sDialog) {
		<span style="white-space:pre">	</span> // reuse previous dialog instance, keep widget user
		<span style="white-space:pre">	</span> // state, reset them if you need
		<span style="white-space:pre">	</span>sDialog.setTitleText("Cancelled!").setContentText("Your imaginary file is safe :)")
		<span style="white-space:pre">	</span>.setConfirmText("OK").showCancelButton(false).setCancelClickListener(null)
		<span style="white-space:pre">	</span>.setConfirmClickListener(null)
		<span style="white-space:pre">	</span>.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();
		*/
	<span style="white-space:pre">	</span>}
		}).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;
			<span style="white-space:pre">	</span>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));
			<span style="white-space:pre">	</span>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;
		}
	}
}



Layout布局文件

<?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>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值