自定义progressbar(类似dialog)

来源:互联网 发布:prolink ii软件下载 编辑:程序博客网 时间:2024/05/18 03:14

主要调用方法

//如dialog一样的使用方法   dialog = new MyDialog().loadingDialog(getActivity());        dialog.show();        // 隐藏         if (dialog != null && dialog.isShowing()) {                dialog.dismiss();            }
public class MyDialog {    public static Dialog loadingDialog(Context context) {        View view = LayoutInflater.from(context).inflate(R.layout.loading_dialog, null);        ImageView imageView = (ImageView) view.findViewById(R.id.img);        // 加载动画        Animation animation = AnimationUtils.loadAnimation(                context, R.anim.load_animation);        // 使用ImageView显示动画        imageView.startAnimation(animation);        Dialog loadingDialog = new Dialog(context, R.style.loading_dialog);// 创建自定义样式dialog        loadingDialog.setContentView(view);        return loadingDialog;    }}

参考动画详细介绍

动画设置

//主要动画(在res创建anim文件夹,这里是放动画的)// load_animation<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:shareInterpolator="false">    <rotate        android:duration="1500"           android:fromDegrees="0"            android:interpolator="@android:anim/linear_interpolator"        android:pivotX="50%"        android:pivotY="50%"        android:repeatCount="-1"        android:repeatMode="restart"        android:startOffset="-1"        android:toDegrees="+360" /></set>
属性 详情 fromDegrees 动画开始时的角度 toDegrees 动画结束时物件的旋转角度,正代表顺时针 pivotX 属性为动画相对于物件的X坐标的开始位置 pivotY 属性为动画相对于物件的Y坐标的开始位置 startOffset 动画之间的时间间隔 AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候速率快。 AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速 CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线 DecelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始减速 LinearInterpolator 动画以均匀的速率改变

dialog 的styles设置

  <!-- 自定义loading dialog -->    <style name="loading_dialog" parent="android:style/Theme.Dialog">        <item name="android:windowFrame">@null</item>        <item name="android:windowNoTitle">true</item>        <item name="android:windowBackground">@android:color/transparent</item>        <item name="android:windowIsFloating">true</item>        <item name="android:windowContentOverlay">@null</item>    </style>
  • 图片资源R.id.img (随意改)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/dialog_view"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="@android:color/transparent"    android:padding="10dp">    <ImageView        android:id="@+id/img"        android:layout_width="50dp"        android:layout_height="50dp"        android:layout_centerInParent="true"        android:src="@mipmap/dialog" />    <TextView        android:id="@+id/tv_content"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/img"        android:layout_centerHorizontal="true"        android:gravity="center"        android:paddingLeft="10dp"        android:paddingTop="12dp"        android:text="loading..."        android:textColor="#00FFFF"        android:textSize="12sp" /></RelativeLayout>

这里写图片描述

0 0
原创粉丝点击