有时候在网络较慢的时候去加载数据的时候会比较慢,比如点击一个按钮去加载数据大半天没反应,用户也不知道怎么回事,这样给用户的体验效果也比较差,那么我们可以自定义一个加载动画页面去供各个数据加载的页面调用:
下面我给大家介绍一个简单的方法去自定义一个动画页面供各个加载数据的页面调用
第一步:先在drawble文件夹下面新建一个lado.xml文件
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
android:toDegrees="1440">
<shape android:shape="ring" android:innerRadiusRatio="3"
android:thicknessRatio="8" android:useLevel="false">
<gradient android:type="sweep" android:useLevel="false"
android:startColor="#FFFFFF" android:centerColor="#1e90ff"
android:centerY="0.50" android:endColor="#0000ff" />
</shape>
</rotate>
然后在在布局文件proobar_layout.xml中使用lado.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.gdwanlian.wanlianhui.ui.AboutWeActivity">
<ProgressBar
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:indeterminate="false"
android:indeterminateDrawable="@drawable/lado">
</ProgressBar>
<TextView
android:id="@+id/shuju_jiazai_haha_tv"
android:padding="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="数据加载中..."/>
</LinearLayout>
然后在styles.xml文件下添加如下代码
<style name="NobackDialog"
parent="@android:style/Theme.Dialog">
<item
name="android:windowBackground">#00000000</item>
</style>
接下来我们就使用dialog把它初始化出来
import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
public class ShowLoadDia {
public static Dialog dialog;
private static TextView tv;
public static void showDia(Context context) {
dialog = new Dialog(context, R.style.NobackDialog); //注意该样式是设置dialog的透明度
View diy = View.inflate(context,
R.layout.proobar_layout, null);
dialog.getWindow();
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(diy);
Window dialogWindow = dialog.getWindow();
WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值
dialogWindow.setAttributes(p);
dialog.setCanceledOnTouchOutside(false);//设置点击Dialog外部任意区域关闭Dialog
tv= (TextView) diy.findViewById(R.id.shuju_jiazai_haha_tv);
tv.setText("数据加载中...");
dialog.show();
}
public static void setText(String str){
tv.setText(str);
}
public static void dimssDia(){
if(dialog!=null) {
dialog.dismiss();
}
}
}
之后就是您可以使用该类随意调用了,在开始加载数据的时候就show,加载数据成功后就diss
调用示例 ShowLoadDia.showDia(context); ShowLoadDia.dimssDia();