Пример #1
0
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    if (getActivity() != null) {
      final Dialog dialog = new Dialog(getActivity());
      dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
      dialog.setContentView(R.layout.activity_image_zoom);
      dialog.getWindow().setBackgroundDrawableResource(R.color.Transparent);
      WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
      layoutParams.copyFrom(dialog.getWindow().getAttributes());
      layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
      layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
      dialog.getWindow().setAttributes(layoutParams);
      initToolbar(dialog);
      progressBar = dialog.findViewById(R.id.zoom_loader);
      zoomableImageView = (PhotoView) dialog.findViewById(R.id.image_zoom_photoview);
      if (bitmap != null) {
        if (rect != null) {
          animateIn(dialog);
        }
      } else if (fileUri != null) {
        showLoader();
        Glide.with(getActivity())
            .load(fileUri)
            .fitCenter()
            .listener(
                new RequestListener<Uri, GlideDrawable>() {
                  @Override
                  public boolean onException(
                      Exception e,
                      Uri model,
                      Target<GlideDrawable> target,
                      boolean isFirstResource) {
                    return false;
                  }

                  @Override
                  public boolean onResourceReady(
                      GlideDrawable resource,
                      Uri model,
                      Target<GlideDrawable> target,
                      boolean isFromMemoryCache,
                      boolean isFirstResource) {
                    hideLoader();
                    return false;
                  }
                })
            .into(zoomableImageView);
      } else {
        dismiss();
      }
      photoViewAttacher = new PhotoViewAttacher(zoomableImageView);
      photoViewAttacher.setOnViewTapListener(
          new PhotoViewAttacher.OnViewTapListener() {
            @Override
            public void onViewTap(View view, float x, float y) {
              dismiss();
            }
          });
      return dialog;
    } else {
      return null;
    }
  }