这篇文章主要介绍了机器人自定义进度对话框进度等待框,通过本文大家可以尝试利用机器人自定义进度对话框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
机器人本身已经提供了进度对话框进度等待框,使用该对话,我们可以为用户提供更好的体验:在网络请求时,弹出此框等待网络数据。不过,既然是为了提高用户体验,我们肯定希望该对话能更加炫酷,让用户看着更舒服。那如何做呢,当然是我们自己定义一个进度对话框了。
可以先看下,接下来将实现的对话效果图:
步骤1:要定义布局文件,该布局文件即是对话的布局了
?可扩展标记语言版本='1.0 '编码='utf-8 '?
线性布局xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '
android:id='@ id/dialog_view '
Android:layout _ width=' fill _ parent '
Android:layout _ height=' fill _ parent '
Android:background=' @ drawable/dialog _ load _ BG '
安卓:重力='中心'
android:minHeight='100dp '
android:minWidth='190dp '
安卓:方向='垂直'
android:padding='10dp '
图像视图
android:id='@ id/img '
Android:layout _ width=' wrap _ content '
Android:layout _ height=' wrap _ content '
Android:src=' @ drawable/public loading '/
文本视图
android:id='@ id/tipTextView '
Android:layout _ width=' wrap _ content '
Android:layout _ height=' wrap _ content '
Android:layout _ margin left=' 10dp '
android:textColor='#acacac '
android:textSize='15sp' /
/线性布局
在布局文件中,我们只定义了两个组件,一个ImageView,用于显示旋转图,一个文本视图,用于显示消息文本
步骤2:定义动画,使得弹出框上的图片可以不停的旋转。
?可扩展标记语言版本='1.0 '编码='utf-8 '?
set Android:share interpolator=' false ' xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '
辐状的
Android:interpolator=' @ Android:anim/linear _ interpolator '
android:pivotX='50% '
android:pivotY='50% '
android:fromDegrees='0 '
安卓:toDegrees=' 360 '
安卓:时长='1500 '
android:startOffset='-1 '
android:repeatMode='restart '
android:repeatCount='-1'/
/设置
步骤3:实现自定义的Dialog逻辑
/**
* 公用的弹出框
*
* @作者李宁
*/
公共类加载对话框{
/**
* 得到自定义的进度对话框
*
* @param上下文
* @param msg
* @返回
*/
公共静态对话框createLoadingDialog(上下文上下文,字符串消息){
//首先得到整个视角
View view=LayoutInflater.from(上下文)。膨胀(
R.layout.loading_dialog_view,null);
//获取整个布局
线性布局布局=(线性布局)视图。findViewById(r . id。dialog _ view);
//页面中的Img
ImageView img=(ImageView)视图。findviewbyid(r . id。img);
//页面中显示文本
TextView tipText=(TextView)视图。findviewbyid(r . id。tiptextview);
//加载动画,动画用户使img图片不停的旋转
动画动画=动画工具。加载动画(上下文,
r。动漫。对话框_加载_动画);
//显示动画
img.startAnimation(动画);
//显示文本
提示文本。settext(msg);
//创建自定义样式的对话
对话框加载对话框=新对话框(context,r . style。loading _ Dialog);
//设置返回键无效
正在加载对话框。setcancelable(false);
正在加载对话框。设置内容视图(布局,新线条布局.布局参数(
线性布局LayoutParams。MATCH_PARENT
线性布局布局参数。MATCH _ PARENT));
返回加载对话框
}
}
代码注释已经很详细了,有一处需要注意的,就是在创建对话实例时,需要传递一个主题,该主题是对话的风格:
!-自定义正在加载对话框-
;style name=' loading _ dialog ' parent=' Android:style/Theme .'对话框'
item name=' Android:window frame ' @ null/item
item name=' Android:window not title ' true/item
item name=' Android:window background ' @ drawable/dialog _ load _ BG/item
item name=' Android:windowIsFloating ' true/item
item name=' Android:windowContentOverlay ' @ null/item
;/风格
步骤4:使用自定义进度对话框
接下来,我们可以直接使用已定义的对话框。很简单。我们只需要显示和关闭对话框。建议封装该方法,并将其放在
在BaseActivity(基类)中,方便随时调用。
/**
*显示对话框
*/
私有void showDialog() {
if (dialog==null) {
对话框=LoadingDialog。CreateLoadingDialog(这,“正在加载.”);
dialog . show();
}
}
/**
*关闭对话框
*/
私有void closeDialog() {
如果(对话!=null) {
dialog . dissolve();
dialog=null
}
}
通过以上步骤,我们已经完成了自定义ProgressDialog。当然,你可以在项目中调整你需要的具体效果。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。