自定义ProgressDialog的实现

来源:互联网 发布:怎么知道淘宝卖家地址 编辑:程序博客网 时间:2024/06/06 17:29

1.ProgressDialog之场景还原

       最近在项目中,很多地方要加载H5界面,中间有个加载数据的空白档,为了不影响用户体验,ProgressDialog派上用场了。我喜欢简约,所以今天我就分享一个简约的自定义ProgressDialog的实现,效果图如下:


2.自定义ProgressDialog的用法

1.自定义ProgressDialog的style(在value的style.xml文件中添加)

<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>
2.在drawable中添加动画文件progress_drawable_white.xml:

<?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>
3.自定义ProgressDialog的布局(在layout下创建dialog.xml文件)

<?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="45dip"            android:layout_height="45dip"            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="#fff"            android:textSize="16.0dip" /></LinearLayout>
4.创建自定义ProgressDialog类(一般放在工程的util目录下)

public class ProgressDialog {    private Dialog progressDialog;    public ProgressDialog(Context context) {        progressDialog = new Dialog(context,R.style.progress_dialog);        progressDialog.setContentView(R.layout.dialog);        progressDialog.setCancelable(true);        progressDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);        TextView msg = (TextView) progressDialog.findViewById(R.id.id_tv_loadingmsg);        msg.setText("正在加载中");    }    public void showDialog(){        progressDialog.show();    }    public void cancelDialog(){        progressDialog.dismiss();    }}
大功告成,然后就是showDialog()调用了!好了,今天就到此为止,我是张星,欢迎您的关注,后期章节更精彩!传送门地址:http://download.csdn.net/detail/zhangxing52077/9717978



2 0
原创粉丝点击