首页 > 系统 > Android > 正文

Android基于Dialog实现加载框

2019-11-09 17:26:51
字体:
来源:转载
供稿:网友

先给大家看个效果图!

首先就是新建一个dialog的xml文件了

[html] view plain copy PRint?<?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:background="@drawable/ic_loading_bg"      android:gravity="center"      android:orientation="vertical"      android:padding="16.0dip" >        <ProgressBar          android:layout_width="24.0dip"          android:layout_height="24.0dip"          android:indeterminateDrawable="@drawable/progress_drawable_white" />        <TextView          android:id="@+id/id_tv_loadingmsg"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:layout_gravity="center_vertical"          android:layout_marginTop="8.0dip"          android:textColor="@color/white"          android:textSize="16.0dip" />    </LinearLayout>  

ic_loading_bg就是一个背景的图片。

关于上面的drawable中的progress_drawable_white.xml文件如下

[html] view plain copy print?<?xml version="1.0" encoding="utf-8"?>  <animation-list android:oneshot="false"    xmlns:android="http://schemas.android.com/apk/res/android">      <item android:duration="83" android:drawable="@drawable/ic_loading_white_01" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_02" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_03" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_04" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_05" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_06" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_07" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_08" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_09" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_10" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_11" />      <item android:duration="83" android:drawable="@drawable/ic_loading_white_12" />  </animation-list>  这12个都是图片来的。

核心显示等待框代码如下

[java] view plain copy print?progressDialog = new Dialog(AboutActivity.this,R.style.progress_dialog);  progressDialog.setContentView(R.layout.progress);  progressDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);  TextView msg = (TextView) progressDialog.findViewById(R.id.id_tv_loadingmsg);  msg.setText("卖力加载中");  progressDialog.show();  其中的文字可以自己改了,方便直接。

给新手的提示,记得在开头写上 private Dialog progressDialog;(老鸟可以忽略这个啦)

里面有个style,加上下面的代码到style.xml文件里面就OK了!

[html] view plain copy print?<style name="progress_dialog" parent="@android:style/Theme.Dialog">            <item name="android:windowFrame">@null</item>            <item name="android:windowIsFloating">true</item>            <item name="android:windowIsTranslucent">true</item>            <item name="android:windowNoTitle">true</item>            <item name="android:background">@null</item>            <item name="android:windowBackground">@null</item>            <item name="android:backgroundDimEnabled">false</item>        </style>  关于如何让这个消失,在需要消失的地方加上   [java] view plain copy print?progressDialog.dismiss();  

开源网址 github:点击打开链接


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表