Android自定义网络数据加载等待框的简单封装
2017-01-07 11:24
369 查看
先上效果图(在5.0以上机型显示效果,如果是4.0会变为灰色):
自定义Dialog如下:
如何使用,很简单在Activity,或Fragment中:比如下面触发按钮响应
自定义Dialog如下:
public class LoadingCustom extends Dialog{ private static LoadingCustom mLoadingProgress; public LoadingCustom(Context context) { super(context); } public LoadingCustom(Context context, int theme) { super(context, theme); } public static void showprogress(Context context,CharSequence message,boolean iscanCancel){ mLoadingProgress=new LoadingCustom(context,R.style.loading_dialog);//自定义style文件主要让背景变成透明并去掉标题部分<!-- 自定义loading dialog --> <style name="loading_dialog" parent="Widget.AppCompat.ProgressBar"> <item name="android:windowNoTitle">true</item> <item name="android:background">@android:color/transparent</item> <!--弹出框时让背景变暗--> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> </style> //触摸外部无法取消,必须 mLoadingProgress.setCanceledOnTouchOutside(false); mLoadingProgress.setTitle(""); mLoadingProgress.setContentView(R.layout.loading_layout); mLoadingProgress.ge 4000 tWindow().setBackgroundDrawableResource(android.R.color.transparent); if(message==null|| TextUtils.isEmpty(message)){ mLoadingProgress.findViewById(R.id.loading_tv).setVisibility(View.GONE); }else { TextView tv = (TextView) mLoadingProgress.findViewById(R.id.loading_tv); tv.setText(message); } //按返回键响应是否取消等待框的显示 mLoadingProgress.setCancelable(iscanCancel); mLoadingProgress.show(); } public static void dismissprogress(){ if(mLoadingProgress!=null){ mLoadingProgress.dismiss(); } } }
//自定义的布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/x240" android:layout_height="@dimen/x240" android:background="@drawable/loading_bg" android:orientation="vertical" android:gravity="center" > <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/loading_pb" <!--用于改变圆圈的颜色--> android:indeterminateTint="@color/colorAccent" android:indeterminateTintMode="src_atop" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="正在加载..." android:textSize="16sp" android:id="@+id/loading_tv" /> </LinearLayout>
如何使用,很简单在Activity,或Fragment中:比如下面触发按钮响应
bt_wait.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //只要一行代码 LoadingCustom.showprogress(getContext(),"正在加载",true); //如果服务器响应数据返回我们只要调用 LoadingCustom.dismissProgress();即可 } });
/**<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="8dp"></corners> <solid android:color="@android:color/darker_gray"></solid> </shape> */
相关文章推荐
- android自定义加载数据动画dialog和简单的timer计时器
- Android+Listview+分页+动态加载网络数据
- android 网络异步加载数据进度条
- 8、Android-搭建简单服务端+ListView异步加载数据
- Android自定义ScrollView分段加载大文本数据到TextView
- Android ViewPager动态向前向后加载数据,自定义viewPager滑动速度
- 异步加载网络数据,自定义进度条显示
- Android自定义ScrollView分段加载大文本数据到TextView
- Android ListView加载网络数据和图片
- Android-搭建简单服务端+ListView异步加载数据
- 自定义一个简单的可以加载网络图片的ImageView
- android 网络数据加载进度条
- android学习 豆瓣 自定义Progressbar 异步任务加载数据等
- Android自定义ScrollView分段加载大文本数据到TextView
- 异步加载网络数据,自定义进度条显示
- Android+Listview+分页+动态加载网络数据
- 异步加载网络数据,自定义进度条显示
- Android异步加载网络数据(PHP做服务端返回的json格式)
- android从网络上异步加载图像简单那实现
- Android异步加载网络数据以及数据缓存的讲解、实例