学习笔记-简单自定义ProgressBar

来源:互联网 发布:node安装教程 编辑:程序博客网 时间:2024/06/05 10:55

         在APP联网请求数据或者进行一些耗时的操作时,为了不让界面显的那么呆板,一般会选择用progressbar来进行过度,然而native 往往不符合大家的要求,说白了就是丑,这里,教大家一个简单的自定义progressBar的方法,就几行代码,轻松搞定;

直接上代码了....

ProgressDialog.java

import android.app.Activity;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;/** * Created by WR on 2017/6/6 0006. */public class ProgressDialog extends Dialog {    private final View viewToFace;    public ProgressDialog(Context context) {        super(context, R.style.Dialog);//我这里是直接在构造方法里面关联style         //点击其他地方消失        setCanceledOnTouchOutside(false);        //填充对话框的布局        viewToFace = ((Activity)context).getLayoutInflater().inflate(R.layout                        .data_loading,                null,                false);    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(viewToFace);    }}
然后写一个style,item不一定全部配置,可以根据自己的需求配置;

<style name="Dialog" parent="android:style/Theme.Dialog">        <item name="android:background">@drawable/loading_bg</item> <!-- 第二个就是弹出dialog后,下面的activity层的颜色啦-->        <item name="android:windowBackground">@color/colorAccent</item> <!--这里设置为没有标题栏,如果这里不设置的话,你会发现无论布局怎么改都会出现多一栏白色 -->        <item name="android:windowNoTitle">true</item><!--取消标题栏-->        <item name="android:windowFrame">@null</item><!--边框-->        <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->        <item name="android:windowIsTranslucent">false</item><!--半透明-->        <item name="android:backgroundDimEnabled">false</item><!--模糊-->    </style>
data_loading.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="horizontal"              android:padding="10dp"              android:layout_width="wrap_content"              android:layout_height="60dp">        <ProgressBar        android:id="@+id/iv_loading"        style="@style/Widget.AppCompat.ProgressBar"        android:indeterminateDrawable="@drawable/rotate"<--这一句就是配置你progressbar界面展示的原图-->        android:layout_marginLeft="10dp"        android:layout_width="40dp"        android:layout_height="40dp"/>    <TextView        android:text="请稍后..."        android:textSize="20sp"        android:gravity="center"        android:layout_marginRight="15dp"        android:layout_marginLeft="20dp"        android:layout_width="wrap_content"        android:layout_height="match_parent"/></LinearLayout>
在 drawable文件夹下写一个旋转动画

<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android"        android:fromDegrees="0"        android:duration="100"        android:drawable="@mipmap/loading3"        android:pivotX="50%"        android:pivotY="50%"        android:toDegrees="360" ></rotate>
剩下的就是在代码里面使用了

直接在代码里面通过构造方法创造对象,因为它是继承的Dialog 类,所以直接调用 show() 方法和 dismiss() 方法就可以实现显示和消失的效果了,看到这里有木有觉得很简单? 如果还觉得难,你就直接copy 到项目中吧!


原创粉丝点击