2
Android漂亮的对话框项目sweet-alert-dialog
source link: http://www.androidchina.net/5016.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Android漂亮的对话框项目sweet-alert-dialog – Android开发中文站
项目地址: https://github.com/pedant/sweet-alert-dialog
android原生的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"
<
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):点此下载
来自:http://blog.csdn.net/cauchyweierstrass/article/details/46335143
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK