Android底部动画弹窗Dialog

一、有时候会遇到底部向上的弹窗如图:

Android底部动画弹窗Dialog_第1张图片

每次写一次太过于麻烦,所以就写一个简单的方法封装起来就可以了

上代码:

1、Java端 

先看使用方法

//photo
            WindowDialogView.WindowDialogView(requireActivity(), new WindowDialogView.windowDialogListener() {
                @Override
                public void onPicture() {

                }

                @Override
                public void onPhotoAlbum() {
                    
                }

                @Override
                public void onDismiss() {

                }
            });
WindowDialogView类
public class WindowDialogView {

    public static void WindowDialogView(Activity activity, windowDialogListener listener) {
        //1、使用Dialog、设置style
        final Dialog dialog = new Dialog(activity, R.style.DialogTheme);
        //2、设置布局
        View view = View.inflate(activity, R.layout.window_dialog_layout, null);
        dialog.setContentView(view);

        Window window = dialog.getWindow();
        //设置弹出位置
        window.setGravity(Gravity.CENTER_VERTICAL);
        //设置弹出动画
        window.setWindowAnimations(R.style.BottomAnimStyle);
        //设置对话框大小
        window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        dialog.show();

        //设置弹出位置
        window.setGravity(Gravity.BOTTOM);

        dialog.findViewById(R.id.tv_take_pic).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.dismiss();
                listener.onPicture();
            }
        });

        dialog.findViewById(R.id.tv_take_photo).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.dismiss();

                listener.onPhotoAlbum();
            }
        });

        dialog.findViewById(R.id.tv_cancel).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.dismiss();
                listener.onDismiss();
            }
        });
    }

    public interface windowDialogListener {
        /**
         * 拍照
         */
        void onPicture();

        /**
         * 相册
         */
        void onPhotoAlbum();

        /**
         * 取消
         */
        void onDismiss();
    }
}

 2、style-DialogTheme

3、动画(下向上)


    
@anim/dialog_in_anim


    

 @anim/dialog_out_anim



    

 

4、自定义layout




    

    

    

    

    

明天更新关于调用系统拍照,如何保存到相册目录或文件保存到app下载的目录(Android11)

你可能感兴趣的:(android,动画)