300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Android自定义Dialog网络加载等待弹窗

Android自定义Dialog网络加载等待弹窗

时间:2019-02-03 18:12:48

相关推荐

Android自定义Dialog网络加载等待弹窗

自定义的布局dialog_loading.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:id="@+id/dialog_loading_view"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><LinearLayoutandroid:layout_width="140dp"android:layout_height="100dp"android:background="@android:color/darker_gray"android:gravity="center"android:orientation="vertical"android:paddingLeft="21dp"android:paddingTop="10dp"android:paddingRight="21dp"android:paddingBottom="10dp"><ProgressBarandroid:id="@+id/progressBar1"android:layout_width="35dp"android:layout_height="35dp"android:layout_gravity="center_horizontal"android:indeterminateBehavior="repeat"android:indeterminateDrawable="@drawable/dialog_loading"android:indeterminateOnly="true" /><TextViewandroid:id="@+id/tipTextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="15dp"android:text="加载中..."android:textColor="@android:color/white"android:textSize="15sp" /></LinearLayout></LinearLayout>

ProgressBar引用的drawable下的动画资源dialog_loading.xml

<?xml version="1.0" encoding="utf-8"?><animated-rotate xmlns:android="/apk/res/android"android:drawable="@drawable/loading_bg"android:pivotX="50%"android:pivotY="50%" />

阿里巴巴矢量图标下载:/

工具类

package com.shanjing.songsearch.utils;import android.app.Dialog;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.widget.TextView;import com.shanjing.songsearch.R;public class LoadingDialog extends Dialog {public LoadingDialog(Context context) {super(context);}public LoadingDialog(Context context, int themeResId) {super(context, themeResId);}public static class Builder {private Context context;private String message;private boolean isShowMessage = true;private boolean isCancelable = false;private boolean isCancelOutside = false;public Builder(Context context) {this.context = context;}/*** 设置提示信息** @param message* @return*/public Builder setMessage(String message) {this.message = message;return this;}/*** 设置是否显示提示信息** @param isShowMessage* @return*/public Builder setShowMessage(boolean isShowMessage) {this.isShowMessage = isShowMessage;return this;}/*** 设置是否可以按返回键取消** @param isCancelable* @return*/public Builder setCancelable(boolean isCancelable) {this.isCancelable = isCancelable;return this;}/*** 设置是否可以取消** @param isCancelOutside* @return*/public Builder setCancelOutside(boolean isCancelOutside) {this.isCancelOutside = isCancelOutside;return this;}public LoadingDialog create() {LayoutInflater inflater = LayoutInflater.from(context);View view = inflater.inflate(R.layout.dialog_loading, null);LoadingDialog loadingDailog = new LoadingDialog(context, R.style.CustomDialog);TextView msgText = (TextView) view.findViewById(R.id.tipTextView);if (isShowMessage) {msgText.setText(message);} else {msgText.setVisibility(View.GONE);}loadingDailog.setContentView(view);loadingDailog.setCancelable(isCancelable);loadingDailog.setCanceledOnTouchOutside(isCancelOutside);return loadingDailog;}}}

引用样式

<!-- 自定义dialog的样式 --><style name="CustomDialog"><item name="android:windowFrame">@null</item><!--边框--><item name="android:windowIsFloating">true</item><!--是否浮现在activity之上--><item name="android:windowIsTranslucent">false</item><!--半透明--><item name="android:windowNoTitle">true</item><!--无标题--><item name="android:windowBackground">@android:color/transparent</item><!--背景透明--><item name="android:backgroundDimEnabled">false</item><!--模糊--><item name="android:backgroundDimAmount">0.6</item></style>

使用

//加载弹窗LoadingDialog.Builder loadBuilder = new LoadingDialog.Builder(this).setMessage("加载中...").setCancelable(true)//返回键是否可点击.setCancelOutside(false);//窗体外是否可点击dialog = loadBuilder.create();dialog.show();//显示弹窗dialog.dismiss();//数据加载完成取消弹窗

GitHub

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。