Android培训
美国上市Android培训机构

400-111-8989

热门课程

Android培训分享:Android中自定义进度加载工具类的使用

  • 发布:Android培训
  • 来源:Android开发中文站
  • 时间:2018-10-30 18:02

今天的android培训分享给大家的是android中自定义进度加载工具类的使用,今天介绍完之后你就不需要每次都在xml布局文件中插入一个progressBar控件来当做页面加载时的进度条提示,我们写一个工具,xml布局文件中插入一个progressBar控件来当做页面加载时的进度条提示,这样不就方便的多了吗?

集成

这里使用MaterialProgressBar。

implementation 'me.zhanghai.android.materialprogressbar:library:1.4.2'

依赖添加完后,记得同步一下gradle就可以使用这个开源库了。

xml布局

需要自己写一个xml当做自定义加载进度的界面显示,我这里就是简单的圆形加载进度条和文字提示相结合的界面样式。custom_progress_bar_view.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

xmlns:app="http://schemas.android.com/apk/res-auto">

<LinearLayout

android:padding="10dp"

android:layout_centerInParent="true"

android:orientation="horizontal"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

<me.zhanghai.android.materialprogressbar.MaterialProgressBar

android:layout_gravity="center_vertical"

android:id="@+id/custom_material_circular"

android:indeterminateTint="@android:color/darker_gray"

app:mpb_progressStyle="circular"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

<TextView

android:id="@+id/tv_load_progress_hint"

android:textColor="@android:color/darker_gray"

android:layout_gravity="center_vertical"

android:textSize="12sp"

android:text="加载中..."

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

</LinearLayout>

</RelativeLayout>

布局简单,不做过多说明。布局显示界面如下:

android培训分享:android中自定义进度加载工具类的使用

工具类实现

我在这个工具类里写了两个重载方法:一个是带进度条颜色设置的方法,一个是默认进度条颜色的方法(默认深灰色)。最后还有一个使进度对话框消失的方法。

ProgressBarUtil.java代码如下:

package com.example.administrator.firststeppro.utils;

import android.app.AlertDialog;

import android.content.Context;

import android.content.res.ColorStateList;

import android.graphics.Color;

import android.support.annotation.ColorInt;

import android.text.TextUtils;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.TextView;

import com.example.administrator.firststeppro.R;

import me.zhanghai.android.materialprogressbar.MaterialProgressBar;

/**

* 进度加载工具栏

*/

public class ProgressBarUtil {

private static AlertDialog dialog = null;

private static View view;

/**

* 加载进度,可以设置进度条的着色

* @param context 上下文对象

* @param loadInfoHints 加载进度提示内容

* @param tintColor 进度条颜色

*/

public static void showProgressBar(Context context, String loadInfoHints,@ColorInt int tintColor){

view = LayoutInflater.from(context).inflate(R.layout.custom_progress_bar_view, null);

TextView tv_load_progress_hint = view.findViewById(R.id.tv_load_progress_hint);

// 设置加载进度提示内容

if (!TextUtils.isEmpty(loadInfoHints)){

tv_load_progress_hint.setText(loadInfoHints);

}else {

tv_load_progress_hint.setText("加载中...");

}

MaterialProgressBar progressBar = view.findViewById(R.id.custom_material_circular);

// 设置进度条着色颜色

progressBar.setIndeterminateTintList(ColorStateList.valueOf(tintColor));

showDialog(context);// 创建对话框展示自定义进度条

}

/**

* 加载进度,默认进度条颜色:深灰色

* @param context 上下文对象

* @param loadInfoHints 加载进度提示内容

*/

public static void showProgressBar(Context context, String loadInfoHints){

view = LayoutInflater.from(context).inflate(R.layout.custom_progress_bar_view, null);

TextView tv_load_progress_hint = view.findViewById(R.id.tv_load_progress_hint);

// 设置加载进度提示内容

if (!TextUtils.isEmpty(loadInfoHints)){

tv_load_progress_hint.setText(loadInfoHints);

}else {

tv_load_progress_hint.setText("加载中...");

}

showDialog(context);// 创建对话框展示自定义进度条

}

/**

* 显示自定义进度对话框

* @param context

*/

private static void showDialog(Context context) {

dialog = new AlertDialog.Builder(context)

.setView(view)

.create();

dialog.show();

}

/**

* 进度框消失

*/

public static void dissmissProgressBar(){

if (dialog != null){

dialog.dismiss();

}

}

}

代码中有关键的注释,也很简单。

使用

重载方法1:ProgressBarUtil.showProgressBar(getContext(), "自定义加载进度条");

这个是不设置进度条颜色,使用默认的颜色,运行后手机上显示如下:

android培训分享:android中自定义进度加载工具类的使用

重载方法2:ProgressBarUtil.showProgressBar(getContext(), "设置颜色加载进度条",

Color.RED);

这个是设置进度条颜色的重载方法,运行后手机上显示如下:

android培训分享:android中自定义进度加载工具类的使用

上面方法2成功的设置了进度条颜色为红色,成功了。所以大家看自己的需求是什么,设置颜色与否就取决于使用哪个重载方法即可。

最后当数据加载完成或者页面初始化完成后,别忘记取消加载进度提示哦!

调用下面的方法即可:

ProgressBarUtil.dissmissProgressBar();

A little bit of progress every day!Come on!

感谢您的阅读,今天android培训带给大家的android中自定义进度加载工具类的使用,你学会了吗?还不赶紧去试试?更多android培训相关知识,欢迎持续关注达内android培训。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

上一篇:Android工程师分享Android应用架构,通俗易懂!
下一篇:Android中webview控件的相关使用详解

Android中webview控件的相关使用详解

Android培训分享:Android中自定义进度加载工具类的使用

Android工程师分享Android应用架构,通俗易懂!

达内Android培训分享:Android组件化之通信机制

选择城市和中心
贵州省

广西省

海南省