@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ButterKnife.inject(this); ivPhoto .getController() .getSettings() .setMaxZoom(5f) .setPanEnabled(true) .setZoomEnabled(true) .setDoubleTapEnabled(true) .setRotationEnabled(true) .setRestrictRotation(true) .setOverscrollDistance(0f, 0f) .setOverzoomFactor(2f) .setFillViewport(false) .setFitMethod(Settings.Fit.INSIDE) .setGravity(Gravity.CENTER); url = getIntent().getStringExtra("photo"); if (url.substring(url.lastIndexOf(".") + 1).equals("gif")) Glide.with(this) .load(url) .asGif() .diskCacheStrategy(DiskCacheStrategy.SOURCE) .listener( new RequestListener<String, GifDrawable>() { @Override public boolean onException( Exception e, String model, Target<GifDrawable> target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady( GifDrawable resource, String model, Target<GifDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { progressBar.setVisibility(View.GONE); return false; } }) .into(ivPhoto); else Glide.with(this) .load(url) .listener( new RequestListener<String, GlideDrawable>() { @Override public boolean onException( Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady( GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { progressBar.setVisibility(View.GONE); return false; } }) .into(ivPhoto); }