美文网首页
自定义加载中Dialog....

自定义加载中Dialog....

作者: 心中有梦丶身边有你 | 来源:发表于2019-04-27 20:42 被阅读0次

    一般当安卓请求接口的时候, 会有1秒左右的请求时间, 而在这个过程中需要一个正在加载中的效果.

    我这里是写在了自定义的BaseActivity中

    private LoadDialog loadDialog;
    private boolean flag = false;
    
    @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mContext = BaseActivity.this;
            loadDialog = new LoadDialog(mContext, R.style.MyDialogStyle);
        }
    
     public boolean showDialog(boolean isShow) {
            if (isShow) {
                flag = true;
                loadDialog.show();
            } else {
                flag = false;
                loadDialog.dismiss();
            }
    
            return flag;
        }
    
    

    style中加入

     <!-- 自定义网络加载 -->
        <style name="MyDialogStyle">
            <item name="android:windowBackground">@android:color/transparent</item>
            <item name="android:windowFrame">@null</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowIsFloating">true</item>
            <item name="android:windowIsTranslucent">true</item>
            <item name="android:windowContentOverlay">@null</item>
            <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
            <item name="android:backgroundDimEnabled">true</item>
        </style>
    
    

    弹出框工具类

    /**
     * 自定义弹出框
     */
    public class LoadDialog extends Dialog {
        public LoadDialog(Context context, int theme) {
            super(context, theme);
            // TODO Auto-generated constructor stub
        }
    
        protected LoadDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
            super(context, cancelable, cancelListener);
            // TODO Auto-generated constructor stub
        }
    
        public LoadDialog(Context context) {
            super(context);
            // TODO Auto-generated constructor stub
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            this.setContentView(R.layout.app_customdialog);
        }
    
    }
    

    app_customdialog.xml 样式

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/loaddialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:background="@drawable/shape_item"
        android:layout_gravity="center"
        android:gravity="center"
    
        android:orientation="vertical" >
    
    
            <!-- 定义一个中等环形进度条 -->
    
            <ProgressBar
                android:id="@+id/progress1"
                android:layout_width="40dp"
                android:layout_height="40dp" />
    
            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="1dp"
                android:text="加载中..."
                android:textColor="#aaa"
                android:textSize="14sp" />
    
    </LinearLayout>
    

    引用背景shape_item.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    <solid android:color="@color/white"/>
        <corners android:radius="5dp"/>
    
    </shape>
    

    在activity中调用 记得继承你的自定义BaseActivity

    showDialog(true); //为true的时候是关闭加载框, 一般放到请求前面
    showDialog(false); //加载完毕, 关闭加载框
    
    

    相关文章

      网友评论

          本文标题:自定义加载中Dialog....

          本文链接:https://www.haomeiwen.com/subject/zsllnqtx.html