android自定义ProgressDialog加载效果

android自定义ProgressDialog加载效果,第1张

概述用来记录自己所用到的知识前两天在做项目的时候发现有时候在访问网络数据的时候由于后台要做的工作较多,给我们返回数据的时间较长,所以老大叫我加了一个加载中的logo图用来提高用户体验.

用来记录自己所用到的知识

前两天在做项目的时候发现有时候在访问网络数据的时候由于后台要做的工作较多,给我们返回数据的时间较长,所以老大叫我加了一个加载中的logo图用来提高用户体验.

于是就在网上找了许多大神写的案例,再结合自己的情况完成了一个Loading工具类

效果:

ok,现在来说说怎么做的

自定义一个类继承ProgressDialog

public class Loading_vIEw extends ProgressDialog {public Loading_vIEw(Context context) {super(context);}public Loading_vIEw(Context context,int theme) {super(context,theme);}@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);init(getContext());}private voID init(Context context) {setCancelable(true);setCanceledOntouchOutsIDe(false);setContentVIEw(R.layout.loading);//loading的xml文件WindowManager.LayoutParams params = getwindow().getAttributes();params.wIDth = WindowManager.LayoutParams.WRAP_CONTENT;params.height = WindowManager.LayoutParams.WRAP_CONTENT;getwindow().setAttributes(params);}@OverrIDepublic voID show() {//开启super.show();}@OverrIDepublic voID dismiss() {//关闭super.dismiss();}}

设置loading布局文件

<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="100dp"androID:layout_height="100dp"androID:layout_gravity="center_horizontal"androID:background="@drawable/shape_dialog_bg"//背景色androID:layout_centerInParent="true"androID:orIEntation="vertical"><relativeLayoutandroID:layout_wIDth="match_parent"androID:layout_height="wrap_content"androID:layout_margintop="10dp"><ProgressbarandroID:ID="@+ID/pb_load"androID:layout_wIDth="65dp"androID:layout_height="65dp"androID:indeterminateDrawable="@drawable/progressbar"//加载圈的样式androID:layout_centerInParent="true"/></relativeLayout><TextVIEwandroID:ID="@+ID/tv_load_dialog"androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:layout_gravity="center_horizontal"androID:text="加载中..."androID:textcolor="#9a9b98"androID:textSize="12sp"/></linearLayout>

背景色(可自行调整)

<?xml version="1.0" enCoding="utf-8"?><shape xmlns:androID="http://schemas.androID.com/apk/res/androID" ><corners androID:radius="8dp" /><solID androID:color="#88000000" /></shape>

加载圈样式(可自行调整)

<animated-rotatexmlns:androID="http://schemas.androID.com/apk/res/androID"androID:pivotX="50%" androID:pivotY="50%"androID:fromdegrees="0"androID:todegrees="720"><shapeandroID:shape="ring"androID:innerRadiusRatio="3"androID:thicknessRatio="15"androID:useLevel="false"><gradIEntandroID:type="sweep"androID:useLevel="false"androID:startcolor="#55c6c6c6"androID:centercolor="#c6c6c6"androID:centerY="0.50"androID:endcolor="#c6c6c6" /></shape></animated-rotate>

ok可以使用了

public class MainActivity extends AppCompatActivity {private Loading_vIEw loading;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentVIEw(R.layout.activity_main);}public voID loding(VIEw v){//点击加载并按钮模仿网络请求loading = new Loading_vIEw(this,R.style.CustomDialog);loading.show();new Handler().postDelayed(new Runnable() {//定义延时任务模仿网络请求@OverrIDepublic voID run() {loading.dismiss();//3秒后调用关闭加载的方法}},3000);}}

为什么会这样,不懂然后就去百度,Google然后在一大神的文章里发现了,但是我在写这文章的时候才发现当初没有保存大神的地址再也找不到了

原来需要在创建自定义的loading 的时候在传入 new Loading_vIEw(this,R.style.CustomDialog);样式

<style name="CustomDialog" parent="theme.AppCompat.Dialog"><item name="androID:backgroundDimEnabled">false</item><item name="androID:windowBackground">@androID:color/transparent</item></style>

ok 再来一次

ok成功!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的android自定义ProgressDialog加载效果全部内容,希望文章能够帮你解决android自定义ProgressDialog加载效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1145934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存