美丽的对话框 sweet-alert-dialog

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

android原生的dialog太生硬了,之前看到了这个效果很不错可是没实用过,今天给别人推荐使用,他遇到了问题,导入后错误许多,也没有库project。于是自己认真看了一下,这是个AndroidStudio的project。而且里面还依赖于materialish-progressproject,也是个AS的project。于是打算弄一个eclipse的版本号而且将这两个project融合在一起作为一个库projectXAlertDialogLibrary。

使用时将其作为库导入项目中就可以。

效果例如以下

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2F1Y2h5d2VpZXJzdHJhc3M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2F1Y2h5d2VpZXJzdHJhc3M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

使用起来很easy,測试代码例如以下:

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):点此下载

Android美丽的对话框项目sweet-alert-dialog的更多相关文章

  1. <Android 基础(十五)> Alert Dialog

    介绍 The AlertDialog class allows you to build a variety of dialog designs and is often the only dialo ...

  2. 好看的dialog,sweet Alert Dialog 导入Android Studio

    系统自带的dialog实在是丑到无法忍受.所以找到了一款比较好的第三方dialog. github 地址如下:https://github.com/pedant/sweet-alert-dialog ...

  3. android漂亮的对话框项目sweet-alert-dialog

      漂亮的对话框 sweet-alert-dialog 项目地址: https://github.com/pedant/sweet-alert-dialog android原生的dialog太生硬了, ...

  4. 【转】 Android常用实例—Alert Dialog的使用

    Android常用实例—Alert Dialog的使用 AlertDialog的使用很普遍,在应用中当你想要用户做出“是”或“否”或者其它各式各样的选择时,为了保持在同样的Activity和不改变用户 ...

  5. 【Android】Android 8种对话框(Dialog)

    1.写在前面 Android提供了丰富的Dialog函数,本文介绍最常用的8种对话框的使用方法,包括普通(包含提示消息和按钮).列表.单选.多选.等待.进度条.编辑.自定义等多种形式,将在第2部分介绍 ...

  6. android修改HOLO对话框风格

    andriod中修改对话框的风格,可以通过设置theme来实现,部分元素需要通过Java代码来修改,下面以修改对话框的标题为例说明各步骤. 1.编写一个文本样式. DIALOG的标题是一个textvi ...

  7. 9.Android之日期对话框DatePicker控件学习

    设置日期对话框在手机经常用到,今天来学习下. 首先设置好布局文件:如图 xml对应代码 <?xml version="1.0" encoding="utf-8&qu ...

  8. Android:AlertDialog对话框

    1.简单的ALertDialog: Dialog alertDialog = new AlertDialog.Builder(this) .setTitle("标题") .setM ...

  9. Android 自学之对话框

    Android为我们提供了丰富的对话框支持,提供了四种常用的对话框: AlertDialog:功能丰富.实际应用最广泛的对话框. ProgressDialog:进度对话框,该对话框只用于简单的进度条封 ...

随机推荐

  1. [Web安全] XXE漏洞攻防学习(中)

    0x00.XXE漏洞攻击实例 攻击思路: 1. 引用外部实体远程文件读取 2. Blind XXE 3. Dos 0x01.外部实体引用,有回显 实验操作平台:bWAPP平台上的XXE题目 题目: 进 ...

  2. c#textBox控件限制只允许输入数字及小数点

    在textboxd的事件中的 KeyPress 事件,这样双击进入代码:输入以下代码 即可 //判断按键是不是要输入的类型. || () && ( && () e.Ha ...

  3. python 元组和字典中元素作为函数调用参数传递

    模式1.  def test1(*args): test3(*args) def test2(**kargs): test3(**kargs) def test3(a, b): print(a,b) ...

  4. U3D面试题四

    1.配置Unity3D调试环境 在windows环境下,设置unity3d的编辑器调试环境方法: 点击“Edit‘---”Preferences“,弹出如下窗口 选择MonoDeveop即可. 在编辑 ...

  5. Qt.网络开发-通过http的get方式获取数据

    Qt 是一个跨平台的 C++图形用户界面库,由挪威 TrollTech 公司于1995年底出品. 它是个跨平台的C++图形开发平台 我们在这章中可以学习简单的网络数据获取并显示的内容 本文基于Qt C ...

  6. index-document-shard

    1.index.shard.document理解: a.每个index包含有多个document,index采用数据路由将document存放在shard中, b.算法(数据路由): shard = ...

  7. C# 数据结构基础-实现循环队列

    队列     队列的概念是先进先出,这个应该不用多说了.看下面那个从网上找的现成图片. 循环队列     循环队列在逻辑上将队列中的数据摆成环形,如下图: 下面直接上代码. 队列 队列的概念是先进先出 ...

  8. Kubernetes 编排系统

    1.1 Kubernetes简介 1.1.1 什么是Kubernetes Kubernetes (通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写) 是用于自动部署.扩展和管理 ...

  9. ASP.NET CORE 之 在IIS上部署MVC项目

    与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel ...

  10. Android数据库大批量数据插入优化

    对比在android中批量插入数据的3中方式对比(各插入1W条数据所花费的时间): 1. 一个一个插入 public static boolean insert(SQLiteOpenHelper op ...