Android自定义对话框

来源:互联网 发布:ctrl alt 互换 linux 编辑:程序博客网 时间:2024/05/21 22:45
    自定义对话框,你只用传你自己的布局即可。    单例模式创建对象,记得在destory方法里面置空
private static CustomProgressDialog instance;    public static CustomProgressDialog getInstance(Context context) {        if (null == instance) {            instance = new CustomProgressDialog(context);        }        return instance;    }
    设置对话框显示的位置和背景透明度
public void setDialogLocationWindowAlpha(int gravity, float alpha) {        Window window = instance.getWindow();        window.setGravity(gravity);        WindowManager.LayoutParams lp = window.getAttributes();        // 设置背景层透明度        lp.dimAmount = alpha;        window.setAttributes(lp);    }
    再就是一些常用方法:
/**     * 设置标题     *     * @param title     * @return     */    public CustomProgressDialog setMyTitle(@Nullable CharSequence title) {        instance.setTitle(title);        return this;    }    /**     * 设置布局     *     * @param layout     * @return     */    public CustomProgressDialog setMyView(@LayoutRes int layout) {        instance.setContentView(layout);        return this;    }    /**     * 设置布局     * @param view     * @return     */    public CustomProgressDialog setMyView(View view) {        instance.setContentView(view);        return this;    }    /**     * 设置TextView的title     *     * @param id     * @param msg     * @return     */    public CustomProgressDialog setMyTvText(int id, String msg) {        View view = findViewById(id);        if (null != view && view instanceof TextView) {            ((TextView) view).setText(msg);        }        return this;    }    /**     * 按返回键是否取消     *     * @param cancelable     * @return     */    public CustomProgressDialog setMyCancelables(boolean cancelable) {        instance.setCancelable(cancelable);        return this;    }    /**     * 点击dialog外部是否取消     *     * @param cancelable     * @return     */    public CustomProgressDialog setMyCanceledOnTouchOutsides(boolean cancelable) {        instance.setCanceledOnTouchOutside(cancelable);        return this;    }    /**     * 监听返回键处理     *     * @param listener     * @return     */    public CustomProgressDialog setOnMyCancelListeners(OnCancelListener listener) {        instance.setOnCancelListener(listener);        return this;    }    /**     * dialog显示     *     * @return     */    public CustomProgressDialog shows() {        instance.show();        return this;    }    /**     * dialog隐藏     *     * @return     */    public CustomProgressDialog dissmiss() {        instance.dismiss();        return this;    }    /**     * 销毁的时候把instance置空     *     * @return     */    public CustomProgressDialog destory() {        instance = null;        return this;    }
    调用方式:
instanceProgressDialog = CustomProgressDialog.getInstance(context);//获取单例对象            View view = LayoutInflater.from(context).inflate(R.layout.update_dialog, null);//自己对话框的布局            instanceProgressDialog.setMyView(view);            instanceProgressDialog.setMyTitle("下载");            instanceProgressDialog.setMyCanceledOnTouchOutsides(false);            instanceProgressDialog.setMyCancelables(false);            instanceProgressDialog.show();

自定义view工具类

原创粉丝点击