全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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  # ProgressDialog  # 加载  # 实例详解Android自定义ProgressDialog进度条对话框的实现  # Android自定义ProgressDialog进度等待框  # Android ProgressBar进度条和ProgressDialog进度框的展示DEMO  # Android 自定义ProgressDialog进度条对话框用法详解  # Android 中通过实现线程更新Progressdialog (对话进度条)  # Android ProgressDialog进度条使用详解  # Android编程实现加载等待ProgressDialog的方法  # Android自定义ProgressDialog加载图片  # Android ProgressDialog使用总结  # Android开发之ProgressDialog进度对话框用法示例  # 大神  # 自定义  # 自己的  # 背景色  # 我在  # 加载中  # 就在  # 找不到  # 不懂  # 给我们  # 叫我  # 要做  # 才发现  # 较多  # 找了  # 就去  # 怎么做  # 在一  # 较长 


相关文章: 网站制作服务平台,有什么网站可以发布本地服务信息?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  高防服务器租用指南:配置选择与快速部署攻略  北京的网站制作公司有哪些,哪个视频网站最好?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  如何快速配置高效服务器建站软件?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  建站org新手必看:2024最新搭建流程与模板选择技巧  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  PHP 500报错的快速解决方法  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  网站按钮制作软件,如何实现网页中按钮的自动点击?  如何在阿里云域名上完成建站全流程?  网页设计与网站制作内容,怎样注册网站?  Python路径拼接规范_跨平台处理说明【指导】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何选择高效可靠的多用户建站源码资源?  如何配置WinSCP新建站点的密钥验证步骤?  黑客如何通过漏洞一步步攻陷网站服务器?  如何制作算命网站,怎么注册算命网站?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  建站之星安装后如何自定义网站颜色与字体?  自助网站制作软件,个人如何自助建网站?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  如何快速生成橙子建站落地页链接?  全景视频制作网站有哪些,全景图怎么做成网页?  家庭服务器如何搭建个人网站?  网站制作的步骤包括,正确网址格式怎么写?  建站之星图片链接生成指南:自助建站与智能设计教程    小型网站制作HTML,*游戏网站怎么搭建?  开源网站制作软件,开源网站什么意思?  如何在腾讯云服务器快速搭建个人网站?  Android自定义listview布局实现上拉加载下拉刷新功能  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  建站之星下载版如何获取与安装?  太原网站制作公司有哪些,网约车营运证查询官网?  建站之星代理费用多少?最新价格详情介绍  制作网站的软件免费下载,免费制作app哪个平台好?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  建站之星在线客服如何快速接入解答?  黑客入侵网站服务器的常见手法有哪些?  湖北网站制作公司有哪些,湖北清能集团官网?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何通过免费商城建站系统源码自定义网站主题与功能?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  建站之星如何实现PC+手机+微信网站五合一建站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。