您的位置:首页 > 移动开发 > Android开发

android自定义加载框

2015-07-21 13:57 405 查看
今天和大家分享一个在做项目中经常用到的加载网络的友好提示,首先我们先看张图片:



相信这种加载界面大家肯定很熟悉,接下去我们就要开始尝试做这个玩意。

其实思路是重定义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结束这样就可以实现转圈圈的额效果了,如果还有不理解的,请给我留言。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: