Android基於Dialog實現載入框
阿新 • • 發佈:2019-02-01
先給大家看個效果圖!
首先就是新建一個dialog的XML檔案了
[html] view plain copy print?- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns: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]- <?xmlversion="1.0"encoding="utf-8"?>
- <animation-listandroid:oneshot="false"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_01"/>
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_02"/>
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_03"/>
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_04"/>
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_05"/>
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_06"/>
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_07"/>
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_08"/>
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_09"/>
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_10"/>
- <itemandroid:duration="83"android:drawable="@drawable/ic_loading_white_11"/>
- <itemandroid: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?- <stylename="progress_dialog"parent="@android:style/Theme.Dialog">
- <itemname="android:windowFrame">@null</item>
- <itemname="android:windowIsFloating">true</item>
- <itemname="android:windowIsTranslucent">true</item>
- <itemname="android:windowNoTitle">true</item>
- <itemname="android:background">@null</item>
- <itemname="android:windowBackground">@null</item>
- <itemname="android:backgroundDimEnabled">false</item>
- </style>
關於如何讓這個消失,在需要消失的地方加上 [java] view plain copy print?
- progressDialog.dismiss();
開源網址 github:點選開啟連結