您的位置:首页 > 移动开发 > Android开发

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

2015-12-02 16:07 495 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: