说明:系统默认的对话框略显单调,要想实现绚丽的对话框效果,改变对话框各种颜色,对话框进入和退出的动画效果,可以使用下边方法,实现方式和经典dialog差不多
使用方法:
buildgrilde中添加依赖:
dependencies {
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.github.sd6352051.niftydialogeffects:niftydialogeffects:1.0.0@aar'
}
Java代码中直接使用:
final NiftyDialogBuilder dialogBuilder=NiftyDialogBuilder.getInstance(getContext());
dialogBuilder
.withTitle("登录成功!") //.withTitle(null) no title
.withTitleColor("#FFFFFF") //def
.withDividerColor("#11000000") //def
.withMessage("今日尚未签到") //.withMessage(null) no Msg
.withMessageColor("#FFFFFFFF") //def | withMessageColor(int resid)
.withDialogColor("#FFE74C3C") //def | withDialogColor(int resid)
.withIcon(getResources().getDrawable(R.drawable.icon))
.withDuration(1000) //def
.withEffect(Effectstype.Fall) //设置对话框弹出动画样式3D旋转,不设置默认淡入淡出
.withButton1Text("知道了") //def gone
// .withButton2Text("Cancel")
// 设置是否模态,默认false,表示模态,
//要求必须采取行动才能继续进行剩下的操作 | isCancelable(true)
.isCancelableOnTouchOutside(true) //def | isCancelable(true)
// .setCustomView(R.layout.custom_view,v.getContext()) //.setCustomView(View or ResId,context)
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialogBuilder.dismiss();
}
})
// .setButton2Click(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// dialogBuilder.dismiss();
// }
// })
.show();
附:参数值
// 重点设置
.withEffect(effect) //设置对话框弹出样式
.setCustomView(R.layout.custom_view, v.getContext()) // 设置自定义对话框的布局
.withDuration(700) //动画显现的时间(时间长就类似放慢动作)
// 基本设置
.withTitle("Modal Dialog") //设置对话框标题
.withTitleColor("#FFFFFF") //设置标题字体颜色
.withDividerColor("#11000000") //设置分隔线的颜色
.withMessage(message) //设置对话框显示内容
.withMessageColor("#FFFFFFFF") //设置消息字体的颜色
.withDialogColor("#FFE74C3C") //设置对话框背景的颜色
.withIcon(getResources().getDrawable(R.drawable.icon)) //设置标题的图标
// 设置是否模态,默认false,表示模态,
//要求必须采取行动才能继续进行剩下的操作 | isCancelable(true)
.isCancelableOnTouchOutside(true)
.withButton1Text("OK") //设置按钮1的文本
.withButton2Text("Cancel") //设置按钮2的文本
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "I am btnOk", Toast.LENGTH_SHORT).show();
dialogBuilder.dismiss();
}
})
.setButton2Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "I am btnCancel", Toast.LENGTH_SHORT).show();
dialogBuilder.dismiss();
}
})
.show();
动画类型的效果值:
Effectstype.Fadein : 从里向外弹出
Effectstype.Slideright : 从右弹出
Effectstype.Slideleft : 从左弹出
Effectstype.Slidetop : 从上弹出
Effectstype.SlideBottom : 从下弹出
Effectstype.Newspager : 旋转弹出
Effectstype.Fall : 从四周向里弹出
Effectstype.Sidefill : 从四周斜侧弹出
Effectstype.Fliph : 3D水平翻转弹出
Effectstype.Flipv : 3D垂直翻转弹出
Effectstype.RotateBottom : 3D底部回转弹出
Effectstype.RotateLeft : 3D左侧回转弹出
Effectstype.Shake : 抖动弹出
Effectstype.Slit : 3D从中间切入