SVProgressHUD的基本使用

SVProgressHUD 用法

SVProgressHUD 是一个第三方的控件,是一个弹出提示层,用来提示 网络加载 或 提示对错,看下面图,你就明白了:


 
那么,SVProgressHUD 都有什么特点呢:
 
1. 提示当前的状态,如:网络传输、提交中、操作成功或失败等等.
 
2. 可是设置提示的 pop layer 是否为 model,就是,提示的时间是否允许用户做其他操作
 
3. 可以设置 背景色 和 自定义提示的内容
 
4. 使用起来非常简洁,代码量非常少
 
那么如何使用 SVProgressHUD 呢:
在app目录下的build.gradle文件中
dependencies属性下面配置 
compile 'com.bigkoo:svprogresshud:1.0.6'就可以正常使用SVProgressHUD ,非常简单方便
不多说,下面直接上代码
首先是actiity_main.xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin">

    <Button android:text="show" android:layout_width="match_parent"
        android:layout_marginTop="5dp"
        android:layout_height="50dp"
        android:onClick="show"/>
    <Button android:text="showWithMaskType" android:layout_width="match_parent"
        android:layout_marginTop="5dp"
        android:layout_height="50dp"
        android:onClick="showWithMaskType"/>
    <Button android:text="showWithStatus" android:layout_width="match_parent"
        android:layout_marginTop="5dp"
        android:layout_height="50dp"
        android:onClick="showWithStatus"/>
    <Button android:text="showInfoWithStatus" android:layout_width="match_parent"
        android:layout_marginTop="5dp"
        android:layout_height="50dp"
        android:onClick="showInfoWithStatus"/>
    <Button android:text="showSuccessWithStatus" android:layout_width="match_parent"
        android:layout_marginTop="5dp"
        android:layout_height="50dp"
        android:onClick="showSuccessWithStatus"/>
    <Button android:text="showErrorWithStatus" android:layout_width="match_parent"
        android:layout_marginTop="5dp"
        android:layout_height="50dp"
        android:onClick="showErrorWithStatus"/>
    <Button android:text="showWithProgress" android:layout_width="match_parent"
        android:layout_marginTop="5dp"
        android:layout_height="50dp"
        android:onClick="showWithProgress"/>

</LinearLayout>
然后是MianActivity.java文件
package com.example.administrator.svprogresshud;

import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Toast;

import com.bigkoo.svprogresshud.SVProgressHUD;
import com.bigkoo.svprogresshud.listener.OnDismissListener;

public class MainActivity extends AppCompatActivity {
    private SVProgressHUD mSVProgressHUD;
    int progress = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mSVProgressHUD = new SVProgressHUD(this);
        mSVProgressHUD.setOnDismissListener(new OnDismissListener() {
            @Override
            public void onDismiss(SVProgressHUD hud) {
                Toast.makeText(getApplicationContext(),"dismiss",Toast.LENGTH_LONG).show();
            }
        });

    }
    public void show(View view){
        mSVProgressHUD.show();
    }
    public void showWithMaskType(View view){
        mSVProgressHUD.showWithMaskType(SVProgressHUD.SVProgressHUDMaskType.None);
//        mSVProgressHUD.showWithMaskType(SVProgressHUD.SVProgressHUDMaskType.Black);
//        mSVProgressHUD.showWithMaskType(SVProgressHUD.SVProgressHUDMaskType.BlackCancel);
//        mSVProgressHUD.showWithMaskType(SVProgressHUD.SVProgressHUDMaskType.Clear);
//        mSVProgressHUD.showWithMaskType(SVProgressHUD.SVProgressHUDMaskType.ClearCancel);
//        mSVProgressHUD.showWithMaskType(SVProgressHUD.SVProgressHUDMaskType.Gradient);
//        mSVProgressHUD.showWithMaskType(SVProgressHUD.SVProgressHUDMaskType.GradientCancel);
    }

    public void showWithStatus(View view){
        mSVProgressHUD.showWithStatus("加载中...");
    }
    public void showInfoWithStatus(View view){
        mSVProgressHUD.showInfoWithStatus("这是提示", SVProgressHUD.SVProgressHUDMaskType.None);
    }
    public void showSuccessWithStatus(View view){
        mSVProgressHUD.showSuccessWithStatus("恭喜,提交成功!");
    }
    public void showErrorWithStatus(View view){
        mSVProgressHUD.showErrorWithStatus("不约,叔叔我们不约~", SVProgressHUD.SVProgressHUDMaskType.GradientCancel);
    }

    private Handler mHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            progress = progress + 5;
            if (mSVProgressHUD.getProgressBar().getMax() != mSVProgressHUD.getProgressBar().getProgress()) {
                mSVProgressHUD.getProgressBar().setProgress(progress);
                mSVProgressHUD.setText("进度 "+progress+"%");

                mHandler.sendEmptyMessageDelayed(0,500);
            }
            else{
                mSVProgressHUD.dismiss();
            }

        }
    };
    public void showWithProgress(View view){
        progress = 0;
        mSVProgressHUD.getProgressBar().setProgress(progress);//先重设了进度再显示,避免下次再show会先显示上一次的进度位置所以要先将进度归0
        mSVProgressHUD.showWithProgress("进度 " + progress + "%", SVProgressHUD.SVProgressHUDMaskType.Black);
        mHandler.sendEmptyMessageDelayed(0,500);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
        {
            if(mSVProgressHUD.isShowing()){
                mSVProgressHUD.dismiss();
                mHandler.removeCallbacksAndMessages(null);
                return false;
            }
        }

        return super.onKeyDown(keyCode, event);

    }
}
大家运行看看效果吧


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值