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结束这样就可以实现转圈圈的额效果了,如果还有不理解的,请给我留言。
相信这种加载界面大家肯定很熟悉,接下去我们就要开始尝试做这个玩意。
其实思路是重定义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结束这样就可以实现转圈圈的额效果了,如果还有不理解的,请给我留言。
相关文章推荐
- Android Otto调研
- Mac上配置adb(Android Debug Bridge)环境变量
- android studio每次启动都要在fetching Android sdk compoment information停好久 怎么解决?
- Android中Bitmap,byte[],Drawable相互转化
- Android Dialog.dismiss()与Activity.finish()顺序
- Android logcat没有日志信息
- 完美实现Android在listview添加checkbox多选操作问题
- Android TextView文字过多,添加滚动条
- Android TextView文字过多,添加滚动条 分类: Android 2015-07-21 13:39 2人阅读 评论(0) 收藏
- android 编程规范
- Android表情的处理方案记录
- android铃声和音量的获取程序
- Android集成PayPal遇到NoClassDefFoundError: com.paypal.android.sdk.payments.PayPalConfiguration
- android权限大全
- Android官方培训课程中文版
- Android项目针对libs(armeabi,armeabi-v7a,x86)进行平台兼容
- Android开发之启动Activity的最佳写法
- Android 开发之 HeartProgress 自定义心形进度条
- Android Studio导入GitHub上的项目常见问题
- Android EventBus 介绍