Android自定义Dialog

  • 项目地址:https://github.com/fingerth/customprogressdialog 点击
  • 使用方法
  • Step 1. Add the JitPack repository to your build file
  • Add it in your root build.gradle at the end of repositories:
allprojects {        repositories {            ...            maven { url 'https://jitpack.io' }        }    }
  • Step 2. Add the dependency
dependencies {            compile 'com.github.fingerth:customprogressdialog:1.1.0'    }

1.加載框

使用方法

  • show:LoadingDiaLogUtils.getInstances().show(this);
  • dismiss:LoadingDiaLogUtils.getInstances().dismiss();

方法

    /**     * method: show();     * @param context              context     * @param backgroundDimEnabled 背景昏暗启用       默認false(<1>背景透明)     * @param att                  屬性 文字、背景    默認(<1>對話框黑色半透明圓角背景;<2>文字顏色0XFFF4F4F4;<3>ProgressBar顏色取自Theme的colorAccent)     *     *method: setMessage();     *@param  msg  msg     *     **method: setCancelListener(); 點擊返回消失,listener可以null     *@param  listener    返回監聽     *     *method: setCanceledOnTouchOutside();     *method: dismiss();     *method: dismiss(Activity activity); 注:如果不在UI線程,調用此方法     *     *LoadingAttributes{     *  textColor ; 文字顏色     *  bgDraw ; Dialog背景Drawable     *}     *默認(<1>對話框黑色半透明圓角背景;<2>文字顏色0XFFF4F4F4;<3>ProgressBar顏色取自Theme的colorAccent)     *     */

代碼示例

    GradientDrawable g1 = new GradientDrawable();//创建drawable    g1.setShape(GradientDrawable.RECTANGLE);    g1.setColor(Color.WHITE);    g1.setCornerRadius(Utils.dp2px(this, 5));//圆角半径    LoadingAttributes lAtt = new LoadingAttributes(Color.BLACK, g1);    LoadingDiaLogUtils.getInstances().show(this, true, lAtt).setMessage("加載中..").setCancelListener(null);

效果图

【工具类】Android自定义Dialog_第1张图片

2.提示框

使用方法

  • show:PromptDialogUtils.getInstances().show(this);

方法

    /**     * method: show();     * @param context              context     * @param type                TYPE_PROMPT(提示,默認) TYPE_SUCCESS(成功)  TYPE_ERROR(失敗)       * @param backgroundDimEnabled 背景昏暗启用       默認false(<1>背景透明)     *     **method: setPromptStr();     *@param  promptStr    提示msg     *     *method: setAttributes();     *@param  att  PromptAttributes     *     *PromptAttributes{     *  textColor ; 文字顏色     *  iconDraw ; 提示圖片Drawable     *  bgDraw ; Dialog背景Drawable     *}     *默認(<1>對話框黑色半透明圓角背景;<2>文字顏色0XFFF4F4F4;)     *     */

代碼示例

    GradientDrawable g2 = new GradientDrawable();//创建drawable    g2.setShape(GradientDrawable.RECTANGLE);    g2.setColor(Color.BLACK);    g2.setCornerRadius(Utils.dp2px(this, 5));//圆角半径    PromptAttributes p = new PromptAttributes(Color.WHITE, getResources().getDrawable(R.drawable.fail), g2);    PromptDialogUtils.getInstances()            .show(this, PromptDialogUtils.TYPE_SUCCESS, true)            .setAttributes(p)            .setPromptStr("Prompt");

效果图

【工具类】Android自定义Dialog_第2张图片

3.确认框

方法

    /**     * method: show();     * @param activity             activity     * @param titleStr             title     * @param msgStr               msg     * @param cancelStr            cancel     * @param sureStr              sure     * @param att                  ConfirmAttributes 字體顏色     * @param callBack             按返回監聽     *     *     *ConfirmAttributes{     *  titleColor ;  title文字顏色     *  msgColor ;    msg文字顏色     *  cancelColor ; cancel文字顏色     *  sureColor ;   sure文字顏色     *}     *     */

代碼示例

ConfirmDialogUtils.getInstances().show(this, "标题", "具体的详细介绍请看文章", "", "", new ConfirmDialogUtils.CallBack() {    @Override    public void cancel() {        Toast.makeText(MainActivity.this, "cancel", Toast.LENGTH_SHORT).show();    }    @Override    public void sure() {        Toast.makeText(MainActivity.this, "sure", Toast.LENGTH_SHORT).show();    }});

效果图

【工具类】Android自定义Dialog_第3张图片

4.输入框

方法

    /**     * method: show();     * @param activity             activity     * @param titleStr             title     * @param cancelStr            cancel     * @param sureStr              sure     * @param att                  InputAttributes 字體顏色     * @param callBack             按返回監聽     *     *     *InputAttributes{     *  titleColor ;    title文字顏色     *  inputColor ;    EditText文字顏色     *  cancelColor ;   cancel文字顏色     *  sureColorCanClick ;   EditText文字長度大於0,可以點擊 sure文字顏色     *  sureColorNoClick ;   EditText文字長度等於0,不可以點擊 sure文字顏色     *}     *     */

代碼示例

InputDialogUtils.getInstances().show(this, "标题", "", "", new InputDialogUtils.InputCallBack() {        @Override        public void cancel() {            ToastUtils.showToast(MainActivity.this, "cancel");        }        @Override        public void inputComplete(String str) {            ToastUtils.showToast(MainActivity.this, str);        }    });

效果图

【工具类】Android自定义Dialog_第4张图片

5.进度条

使用方法

  • show:ProgressBarDialogUtils.getInstances().show(this);
  • dismiss:ProgressBarDialogUtils.getInstances().dismiss();

方法

    /**     * method: show();     * @param context              context     * @param backgroundDimEnabled 背景昏暗启用       默認false(<1>背景透明)     * @param att                  屬性 文字、背景    默認(<1>對話框白色圓角背景;<2>文字顏色0XFFFC00D1;<3>進度條完成顏色0XFFFC00D1;<4>進度條未完成顏色0xFFD3D6DA)     *     *method: setMessage();     *@param  msg  標題     *     *method: setCancelListener(); 點擊返回消失,listener可以null     *@param  listener    返回監聽     *     *method: setProgress();     *method: getProgress();     *method: setMax();     *method: getMax();     *method: dismiss();     *method: dismiss(Activity activity); 注:如果不在UI線程,調用此方法     *     *FAttributes{     *  mTextColor ; 文字顏色     *  mReachedBarColor ; bar已完成顏色     *  mUnReachedBarColor ; bar未完成顏色     *  bgDraw ; Dialog背景Drawable     *}     *默認(<1>對話框白色圓角背景;<2>文字顏色0XFFFC00D1;<3>進度條完成顏色0XFFFC00D1;<4>進度條未完成顏色0xFFD3D6DA)     *     */

代碼示例

    public void show(){        GradientDrawable gd = new GradientDrawable();//创建drawable        gd.setShape(GradientDrawable.RECTANGLE);        gd.setColor(Color.WHITE);        gd.setCornerRadius(Utils.dp2px(this, 5));//圆角半径        //gd.setStroke(Utils.dp2px(context, 1), colorInt);//边框寬度、颜色        FAttributes att = new FAttributes(Color.BLACK, Color.BLACK, getResources().getColor(R.color.white_dd), gd);        ProgressBarDialogUtils.getInstances()                .show(this, true, att)                .setMessage("正在下載")                .setProgress(0);    }    AsyncTaskProgress async = new AsyncTaskProgress();    async.execute("");    private class AsyncTaskProgress extends AsyncTask {        @Override        protected void onPreExecute() {            super.onPreExecute();        }        @Override        protected Object doInBackground(String... params) {            for (int i = 0; i < 100; i++) {                SystemClock.sleep(50);                publishProgress(i + 1);            }            return params;        }        @Override        protected void onProgressUpdate(Integer... values) {            //horizontal_bar.setProgress(values[0] % 100);            ProgressBarDialogUtils.getInstances().setProgress(values[0] % 100);            if (values[0] == 100) {                ProgressBarDialogUtils.getInstances().dismiss();                ToastUtils.showToast(MainActivity.this, "完成!");            }            super.onProgressUpdate(values);        }        @Override        protected void onPostExecute(Object o) {            super.onPostExecute(o);        }    }

效果图

【工具类】Android自定义Dialog_第5张图片

END

更多相关文章

  1. Android Shader应用开发之霓虹闪烁文字效果
  2. [转]代码实现渐变背景
  3. 背景圆角以及图片圆角处理
  4. Android ApiDemos示例解析(95):Views->Animation->3D Transition
  5. Android中资源文件用法简单示例
  6. Android布局编写示例【慢慢更新】

随机推荐

  1. 【Android】gradle使用过程的问题解决汇
  2. Android Studio安装及常见错误
  3. Android(安卓)知识点积累(一)
  4. 获得G1的电池电量信息
  5. AndroidStudio、gradle、buildToolsVersi
  6. sqlite c库使用
  7. Android Sensor详解(6)sensor framework层
  8. Android greenDao 使用教程(二) 在Eclipse
  9. Android中定义Viewport需要注意的几个数
  10. Baidu Map开发示例