今天和大家分享一个在做项目中经常用到的加载网络的友好提示,首先我们先看张图片:
相信这种加载界面大家肯定很熟悉,接下去我们就要开始尝试做这个玩意。
其实思路是重定义Dialog,然后再Dialog中布局。至于这种转圈圈的动态效果实际上上是多张图片轮流切换
1.创建Dialog:
mProgressDialog = new Dialog(mContext,R.style.progress_dialog);
mProgressDialog.setContentView(R.layout.layout_progress_dialog);
mProgressDialog.setCancelable(true);
mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
mProgressDialog.show();
2.R.style.progree_dialog:
<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>
3. R.layout.layout_progress_dialog:
<?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:gravity="center"
android:background="@drawable/bg_progressbar"
android:orientation="vertical"
android:padding="@dimen/dimen_border_size_normal" >
<ProgressBar
android:layout_width="30dp"
android:layout_height="30dp"
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="8dp"
android:textColor="#fff"
android:text="加载中..."
android:textSize="@dimen/dimen_font_size_xnormal" />
</LinearLayout>
4.progress_drawable_white:(android:indeterminateDrawable="@drawable/progress_drawable_white"这句话相当于隐藏自身的进度条并且重定义动画)
<?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>
这里面的1、2、3....均是图片,这些图片就让ui去切了,android:duration="83"相当于没83毫秒切换一张图片,这样连起来就相当于一个动画了
至此,整个demo结束这样就可以实现转圈圈的额效果了,如果还有不理解的,请给我留言。