private void scaleDown(final ItemActivity.Callback callback) { final SubsamplingScaleImageView imageView = itemView.findViewById(R.id.subsampling); if (imageView != null) { try { imageView.animateScale(0.0f) .withDuration(300) .withOnAnimationEventListener( new SubsamplingScaleImageView.DefaultOnAnimationEventListener() { @Override public void onComplete() { super.onComplete(); swapView(true); callback.done(); //imageView.recycle(); } }) .start(); } catch (NullPointerException e) { swapView(true); callback.done(); //imageView.recycle(); } } }