PhotoViewDialog.java 1.62 KB
package com.hjx.parent.dialog;

import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.WindowManager;

import androidx.annotation.NonNull;

import com.bumptech.glide.Glide;
import com.hjx.parent.databinding.DialogPhotoViewBinding;

public class PhotoViewDialog extends BaseDialog<DialogPhotoViewBinding> {
    public PhotoViewDialog(Context context) {
        super(context);
    }

    private String url;

    @Override
    public void initView() {
        setupWindow();
        setCancelable(true);
        binding.btnClose.setOnClickListener(v -> dismiss());
    }

    private void setupWindow() {
        // 在显示 Dialog 之前对窗口进行设置
        getWindow().setFlags(
                WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS,
                WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

        // 设置状态栏背景透明
        getWindow().setStatusBarColor(Color.TRANSPARENT);

        // 让内容延伸到状态栏区域,并保持状态栏和导航栏的显示
        getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

    }

    @Override
    public void onDialogStart() {
        super.onDialogStart();
        Glide.with(getContext()).load(url).into(binding.photoView);
    }

    public void show(String url) {
        this.url = url;
        super.show();
    }

    @NonNull
    @Override
    public DialogPhotoViewBinding getBinding() {
        return DialogPhotoViewBinding.inflate(getLayoutInflater());
    }
}