android自定义加载框

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


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

其实思路是重定义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结束这样就可以实现转圈圈的额效果了,如果还有不理解的,请给我留言。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值