全网整合营销服务商

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

免费咨询热线: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进度对话框用法示例  # 大神  # 自定义  # 自己的  # 背景色  # 我在  # 加载中  # 就在  # 找不到  # 不懂  # 给我们  # 叫我  # 要做  # 才发现  # 较多  # 找了  # 就去  # 怎么做  # 在一  # 较长 


相关文章: 如何选择CMS系统实现快速建站与SEO优化?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  网站制作服务平台,有什么网站可以发布本地服务信息?  如何打造高效商业网站?建站目的决定转化率  如何在Windows服务器上快速搭建网站?  Swift中switch语句区间和元组模式匹配  建站之星如何快速更换网站模板?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  微信h5制作网站有哪些,免费微信H5页面制作工具?  建站之星CMS五站合一模板配置与SEO优化指南  网站制作壁纸教程视频,电脑壁纸网站?  如何通过服务器快速搭建网站?完整步骤解析  寿县云建站:智能SEO优化与多行业模板快速上线指南  建站主机SSH密钥生成步骤及常见问题解答?  建站主机与服务器功能差异如何区分?  如何彻底卸载建站之星软件?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  存储型VPS适合搭建中小型网站吗?  如何快速搭建高效可靠的建站解决方案?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何在橙子建站中快速调整背景颜色?  ,网页ppt怎么弄成自己的ppt?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  在线教育网站制作平台,山西立德教育官网?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  太原网站制作公司有哪些,网约车营运证查询官网?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  大型企业网站制作流程,做网站需要注册公司吗?  宝塔新建站点为何无法访问?如何排查?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  建站之星后台密码如何安全设置与找回?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  简历在线制作网站免费版,如何创建个人简历?  如何实现建站之星域名转发设置?  金*站制作公司有哪些,金华教育集团官网?  宝塔建站无法访问?如何排查配置与端口问题?  如何在Windows虚拟主机上快速搭建网站?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何选择可靠的免备案建站服务器?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  广州美橙建站如何快速搭建多端合一网站?  如何在自有机房高效搭建专业网站?  如何在Ubuntu系统下快速搭建WordPress个人网站?  5种Android数据存储方式汇总  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  建站之星代理商如何保障技术支持与售后服务?  建站168自助建站系统:快速模板定制与SEO优化指南 

您的项目需求

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