工具Util


public class DialogUtil {
    public static ProgressDialogView progressDialog;
    /**
     * 显示对话框的方法,String类型
     * @param context 句柄
     * @param title 标题
     * @param message 内容
     * @param view 视图
     * @param positive 左边的按钮文字
     * @param neutral 中间的按钮文字
     * @param negative 右边的按钮文字
     * @param positiveListener 左边按钮的监听器
     * @param neutralListener 中间按钮的监听器
     * @param negativeListener 右边按钮的监听器
     */
    public static void showDialog(Context context, String title, String message, View view, String positive, String neutral,
            String negative, OnClickListener positiveListener, OnClickListener neutralListener, OnClickListener negativeListener) {
        new AlertDialog.Builder(context).setTitle(title).setMessage(message).setView(view)
                .setPositiveButton(positive, positiveListener).setNeutralButton(neutral, neutralListener)
                .setNegativeButton(negative, negativeListener).create().show();
    }
    /**
     * 显示简单的带进度条对话框
     * @param context 句柄
     * @param title 标题
     * @param message 内容
     * @param cancelable 是否可以取消
     */
    public static void showProgressDialog(Context context, String title, String message, boolean cancelable, OnCancelListener cancelListener) {
        dismissProgressDialog();
        progressDialog = new ProgressDialogView(context);
        progressDialog.setTitle(title);
        progressDialog.setMessage(message);
        progressDialog.setCancelable(cancelable);
        progressDialog.setOnCancelListener(cancelListener);
        progressDialog.show();
    }
    /**
     * 取消带进度条的对话框
     */
    public static void dismissProgressDialog() {
        if (progressDialog != null && progressDialog.isShowing()) {
            try {
                progressDialog.dismiss();
            } catch (IllegalArgumentException e) {
            }
        }
        progressDialog = null;
    }
}


View

public class ProgressDialogView extends Dialog {
    private ProgressBar pgb_progress;
    private TextView tv_messag;
    public ProgressDialogView(Context context) {
        super(context, R.style.DialogTheme);
        initView();
    }
    public ProgressDialogView(Context context, int theme) {
        super(context, theme);
        initView();
    }
    private void initView() {
        setContentView(R.layout.progress_dialog);
        pgb_progress = (ProgressBar) findViewById(R.id.pgb_progress);
        tv_messag = (TextView) findViewById(R.id.tv_messag);
    }

    @Override
    public void setTitle(CharSequence title) {
        super.setTitle(title);
    }
    @Override
    public void setCancelable(boolean flag) {
        super.setCancelable(flag);
    }
    @Override
    public void setOnCancelListener(OnCancelListener listener) {
        super.setOnCancelListener(listener);
    }
    public void setMessage(String string) {
        tv_messag.setVisibility(View.VISIBLE);
        tv_messag.setText(string);
    }
}

布局


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:background="@drawable/bg_progress_dialog"
    android:orientation="vertical" >
    <!-- android:background="@drawable/bg_progress_dialog" -->
    <ProgressBar
        android:id="@+id/pgb_progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="18dp"
        android:indeterminateDrawable="@drawable/progress_white" />
    <TextView
        android:id="@+id/tv_messag"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/pgb_progress"
        android:layout_centerInParent="true"
        android:layout_marginTop="5dp"
        android:ellipsize="end"
        android:singleLine="true"
        android:text="显示信息"
        android:textColor="@color/white"
        android:textSize="18sp"
        android:visibility="gone" />
</RelativeLayout>

灰色背景 bg_progress_dialog
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item><shape>
            <solid android:color="#66000000" />
            <corners android:radius="3dp" />
            <padding android:bottom="6dp" android:left="3dp" android:right="3dp" android:top="6dp" />
        </shape></item>
</selector>

圆形进度条 progress_white

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <rotate
            android:drawable="@drawable/progress_white_icon"
            android:fromDegrees="0.0"
            android:pivotX="50.0%"
            android:pivotY="50.0%"
            android:toDegrees="360.0" />
    </item>
</layer-list>


95秀-dialog 进度对话框 实用工具的更多相关文章

  1. 95秀-自定义对话框 dialog 合集

    普通的确认对话框 NormalDialog.java import android.app.Dialog; import android.content.Context; import android ...

  2. Android—关于自定义对话框的工具类

    开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...

  3. Bootstrap<基础十> 响应式实用工具

    Bootstrap 提供了一些辅助类,以便更快地实现对移动设备友好的开发.这些可以通过媒体查询结合大型.小型和中型设备,实现内容对设备的显示和隐藏. 需要谨慎使用这些工具,避免在同一个站点创建完全不同 ...

  4. 10.Android之ProgressDialog进度对话框学习

    APP应用中经常会下载某些东西,这里面有涉及到进度对话框,今天来学习下. 首先,布局里放进两个按钮,点击一个显示条形进度条,另一个显示圆形进度条.代码如下: <?xml version=&quo ...

  5. Android Dialog(对话框)

    一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能. Andro ...

  6. Android学习笔记(九)——更复杂的进度对话框

    显示操作进度的对话框 1.使用上一篇创建的同一项目.在activity_main.xml文件里加入一个Button: <Button android:id="@+id/btn_dial ...

  7. 每位iOS开发人员不容错过的10大实用工具

    内容简介 1.iOS简介 2.iOS开发十大实用工具之开发环境 3.iOS开发十大实用工具之图标设计 4.iOS开发十大实用工具之原型设计 5.iOS开发十大实用工具之演示工具 6.iOS开发十大实用 ...

  8. Android学习笔记(八)——显示运行进度对话框

    显示运行进度对话框 我们经常有这种经历:运行某一应用程序时.须要等待一会,这时会显示一个进度(Please Wait)对话框,让用户知道操作正在进行. 我们继续在上一篇中的程序中加入代码~ 1.在上一 ...

  9. JavaScript和CSS实用工具、库与资源

    JavaScript和CSS实用工具.库与资源 JavaScript 库 Particles.js  - 一个用于在网页上创建漂亮的浮动粒子的 JS 库: Three.js  - 用于在网页上创建 3 ...

随机推荐

  1. [LeetCode OJ] Single Number之一 ——Given an array of integers, every element appears twice except for one. Find that single one.

    class Solution { public: int singleNumber(int A[], int n) { int i,j; ; i<n; i++) { ; j<n; j++) ...

  2. 【USACO 2.4.1】两只塔姆沃斯牛

    [题目描述] 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它 ...

  3. java保留两位小数的方法

    01.import java.math.BigDecimal; 02.import java.text.DecimalFormat; 03.import java.text.NumberFormat; ...

  4. 在jQuery.getData中renderCallback使用不同创建方式的结果

    JavaScript 中需要创建函数的话,有两种方法:函数声明.函数表达式,各自写法如下:// 方法一:函数声明function foo() {}// 方法二:函数表达式var foo = funct ...

  5. $_GLOBALS超全局数组和global定义的全局变量区别?

    全局变量:主程序中定义的变量(函数外部),只能在主程序中使用,在函数内部不能调用 背景:解决在函数内部调用全局变量的问题 解决方法: 1.在函数内部声名全局变量 <?php public $va ...

  6. 织梦DedeCMS子目录移动到根目录的方法

    有时候我们在子目录中安装了dedecms,但有时候需要将其换到根目录中,下面就讲一下织梦DedeCMS子目录移动到根目录的方法: 下面是具体的操作步骤,强烈建议先备份数据库. 1.进入dedecms后 ...

  7. 清橙A1484

    http://www.tsinsen.com/ViewGProblem.page?gpid=A1484### 题解: 在线插入并不好做,我们将所有操作离线,变为删除操作. 每次询问的时候对于当前B串所 ...

  8. 一起学习iOS开发专用词汇,每天记3个,助你变大牛-b

    大家做开发最大的问题是什么?英语的问题应该困扰很多的同学的地方,我们提倡科学学习开发中的常用词汇.我们不要求大家有特别好的听.说.写,只要能够记住,能够认识这些常用词汇你以后的开发也将游刃有余.我们的 ...

  9. Web Service相关工具的配置

    近期在学习Web Service Testing,使用到了soapUI这个工具,但是在学习之前,需要搭建Web Service环境,其中有关数据库的连接问题花费了我好多时间,主要还是自己对于很多配置不 ...

  10. Red Hat TimesTen安装记录

    1:内核参数修改 # vi /etc/sysctl.conf kernel.sem= #sysctl –p 备注:此安装过程为测试环境,具体参数修改要参考TimesTen官方文档. 2:创建用户及组信 ...