当前位置: 首页 > 编程笔记 >

android自定义ProgressDialog加载效果

连时铭
2023-03-14
本文向大家介绍android自定义ProgressDialog加载效果,包括了android自定义ProgressDialog加载效果的使用技巧和注意事项,需要的朋友参考一下

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

前两天在做项目的时候发现有时候在访问网络数据的时候由于后台要做的工作较多,给我们返回数据的时间较长,所以老大叫我加了一个加载中的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);
}

@Override
protected 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);
}

@Override
public void show() {//开启
super.show();
}

@Override
public 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">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">

<ProgressBar
android:id="@+id/pb_load"
android:layout_width="65dp"
android:layout_height="65dp"
android:indeterminateDrawable="@drawable/progressbar"//加载圈的样式
android:layout_centerInParent="true"/>

</RelativeLayout>

<TextView
android: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-rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%" android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="720">

<shape
android:shape="ring"
android:innerRadiusRatio="3"
android:thicknessRatio="15"
android:useLevel="false">
<gradient
android: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;

@Override
protected 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() {//定义延时任务模仿网络请求
@Override
public 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自定义webView头部进度加载效果,包括了Android自定义webView头部进度加载效果的使用技巧和注意事项,需要的朋友参考一下 不多说先来看下效果图: 1. 颜色渐变加载进度条(夜神模拟器)   绿色加载进度条(魅蓝note2)   看图说话: 上图是不是加载网页的时候会有一个进度条在横向加载,比以前网速不好的时候是一片空白给人的感觉友好多了是不,然后效果还不错

  • 本文向大家介绍Android自定义Dialog实现加载对话框效果,包括了Android自定义Dialog实现加载对话框效果的使用技巧和注意事项,需要的朋友参考一下 前言 最近开发中用到许多对话框,之前都是在外面的代码中创建AlertDialog并设置自定义布局实现常见的对话框,诸如更新提示等含有取消和删除两个按钮的对话框我们可以通过代码创建一个AlertDialog并通过它暴露的一系列方法设置我们

  • 本文向大家介绍Android自定义View实现加载进度条效果,包括了Android自定义View实现加载进度条效果的使用技巧和注意事项,需要的朋友参考一下 上一篇文章总结了下自定义View的几个步骤,如果还有不清楚的同学可以先去看看Android自定义View(一) ,这篇文章和大家分享一下自定义加载进度条,效果如下 下面就以水平的进度条为列进行讲解: 1.首先还是在attrs.xml文件中自定义

  • 本文向大家介绍Android自定义带加载动画效果的环状进度条,包括了Android自定义带加载动画效果的环状进度条的使用技巧和注意事项,需要的朋友参考一下 最近闲来无事,自定义了一个环状进度条,话不多说直接上代码 : 相关用法: setProgress(progress);//设置进度 setRadius(300);//设置半径 setStokewidth(60);//设置环宽 setTextSi

  • 本文向大家介绍android自定义手表效果,包括了android自定义手表效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了android自定义手表效果的具体代码,供大家参考,具体内容如下 1.效果图: 2.布局 3.自定义view,显示 点击运行就可以了,这样手机就可以当手表用了,真的神奇。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Android自定义日历效果,包括了Android自定义日历效果的使用技巧和注意事项,需要的朋友参考一下 因为工作功能需求,自定义一个日历,效果如下,点击选中日历 使用github上面一个前辈的框架 框架使用基本类型地址,大家可以根据需要学习修改:地址 自定义日历的xml文件 MainActivity,日历的功能重写也是在和这个函数中 GitHub下载地址 以上就是本文的全部内容,希