diff --git a/build.gradle b/build.gradle
index 1765a3a..828a192 100644
--- a/build.gradle
+++ b/build.gradle
@@ -14,6 +14,8 @@
 //     include(":volley")
 //     project(':volley').buildFileName = 'rules.gradle'
 
+import net.ltgt.gradle.errorprone.CheckSeverity
+
 buildscript {
     repositories {
         jcenter()
@@ -26,7 +28,9 @@
 
 plugins {
     id "com.github.sherter.google-java-format" version "0.6"
-    id "net.ltgt.errorprone" version "0.0.13"
+    // NOTE: 0.7 or newer will require upgrading to a newer Android gradle plugin:
+    // https://github.com/tbroyer/gradle-errorprone-plugin/commit/65b1026ebeae1b7ed8c28578c7f6eea512c16bea
+    id "net.ltgt.errorprone" version "0.6.1"
 }
 
 googleJavaFormat {
@@ -41,6 +45,15 @@
     google()
 }
 
+dependencies {
+    // NOTE: Updating ErrorProne introduces new checks that may cause the build to fail. Pin to a
+    // specific version to control these updates.
+    errorprone("com.google.errorprone:error_prone_core:2.3.2")
+    // ErrorProne requires a JDK 9 compiler, so pull one in as a dependency since we use Java 8:
+    // https://github.com/tbroyer/gradle-errorprone-plugin#jdk-8-support
+    errorproneJavac("com.google.errorprone:javac:9+181-r4173-1")
+}
+
 group = 'com.android.volley'
 version = '1.2.0-SNAPSHOT'
 
@@ -55,7 +68,9 @@
 }
 
 tasks.withType(JavaCompile) {
-    options.compilerArgs << "-Xep:ParameterComment:ERROR"
+    options.errorprone {
+        check("ParameterComment", CheckSeverity.ERROR)
+    }
 }
 
 apply from: 'rules.gradle'
diff --git a/src/main/java/com/android/volley/toolbox/NetworkImageView.java b/src/main/java/com/android/volley/toolbox/NetworkImageView.java
index 53affc3..a24b3e2 100644
--- a/src/main/java/com/android/volley/toolbox/NetworkImageView.java
+++ b/src/main/java/com/android/volley/toolbox/NetworkImageView.java
@@ -15,6 +15,7 @@
 
 import android.content.Context;
 import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.ViewGroup.LayoutParams;
@@ -32,25 +33,37 @@
 
     /**
      * Resource ID of the image to be used as a placeholder until the network image is loaded. Won't
-     * be set at the same time as mDefaultImageBitmap.
+     * be set at the same time as mDefaultImageDrawable or mDefaultImageBitmap.
      */
     private int mDefaultImageId;
 
     /**
-     * Bitmap of the image to be used as a placeholder until the network image is loaded. Won't be
-     * set at the same time as mDefaultImageId.
+     * Drawable of the image to be used as a placeholder until the network image is loaded. Won't be
+     * set at the same time as mDefaultImageId or mDefaultImageBitmap.
      */
-    @Nullable Bitmap mDefaultImageBitmap;
+    @Nullable private Drawable mDefaultImageDrawable;
+
+    /**
+     * Bitmap of the image to be used as a placeholder until the network image is loaded. Won't be
+     * set at the same time as mDefaultImageId or mDefaultImageDrawable.
+     */
+    @Nullable private Bitmap mDefaultImageBitmap;
 
     /**
      * Resource ID of the image to be used if the network response fails. Won't be set at the same
-     * time as mErrorImageBitmap.
+     * time as mErrorImageDrawable or mErrorImageBitmap.
      */
     private int mErrorImageId;
 
     /**
      * Bitmap of the image to be used if the network response fails. Won't be set at the same time
-     * as mErrorImageId.
+     * as mErrorImageId or mErrorImageBitmap.
+     */
+    @Nullable private Drawable mErrorImageDrawable;
+
+    /**
+     * Bitmap of the image to be used if the network response fails. Won't be set at the same time
+     * as mErrorImageId or mErrorImageDrawable.
      */
     @Nullable private Bitmap mErrorImageBitmap;
 
@@ -100,21 +113,38 @@
      * Sets the default image resource ID to be used for this view until the attempt to load it
      * completes.
      *
-     * <p>This will clear anything set by {@link NetworkImageView#setDefaultImageBitmap}.
+     * <p>This will clear anything set by {@link NetworkImageView#setDefaultImageBitmap} or {@link
+     * NetworkImageView#setDefaultImageDrawable}.
      */
     public void setDefaultImageResId(int defaultImage) {
         mDefaultImageBitmap = null;
+        mDefaultImageDrawable = null;
         mDefaultImageId = defaultImage;
     }
 
     /**
+     * Sets the default image drawable to be used for this view until the attempt to load it
+     * completes.
+     *
+     * <p>This will clear anything set by {@link NetworkImageView#setDefaultImageResId} or {@link
+     * NetworkImageView#setDefaultImageBitmap}.
+     */
+    public void setDefaultImageDrawable(@Nullable Drawable defaultImageDrawable) {
+        mDefaultImageId = 0;
+        mDefaultImageBitmap = null;
+        mDefaultImageDrawable = defaultImageDrawable;
+    }
+
+    /**
      * Sets the default image bitmap to be used for this view until the attempt to load it
      * completes.
      *
-     * <p>This will clear anything set by {@link NetworkImageView#setDefaultImageResId}.
+     * <p>This will clear anything set by {@link NetworkImageView#setDefaultImageResId} or {@link
+     * NetworkImageView#setDefaultImageDrawable}.
      */
     public void setDefaultImageBitmap(Bitmap defaultImage) {
         mDefaultImageId = 0;
+        mDefaultImageDrawable = null;
         mDefaultImageBitmap = defaultImage;
     }
 
@@ -122,21 +152,38 @@
      * Sets the error image resource ID to be used for this view in the event that the image
      * requested fails to load.
      *
-     * <p>This will clear anything set by {@link NetworkImageView#setErrorImageBitmap}.
+     * <p>This will clear anything set by {@link NetworkImageView#setErrorImageBitmap} or {@link
+     * NetworkImageView#setErrorImageDrawable}.
      */
     public void setErrorImageResId(int errorImage) {
         mErrorImageBitmap = null;
+        mErrorImageDrawable = null;
         mErrorImageId = errorImage;
     }
 
     /**
+     * Sets the error image drawable to be used for this view in the event that the image requested
+     * fails to load.
+     *
+     * <p>This will clear anything set by {@link NetworkImageView#setErrorImageResId} or {@link
+     * NetworkImageView#setDefaultImageBitmap}.
+     */
+    public void setErrorImageDrawable(@Nullable Drawable errorImageDrawable) {
+        mErrorImageId = 0;
+        mErrorImageBitmap = null;
+        mErrorImageDrawable = errorImageDrawable;
+    }
+
+    /**
      * Sets the error image bitmap to be used for this view in the event that the image requested
      * fails to load.
      *
-     * <p>This will clear anything set by {@link NetworkImageView#setErrorImageResId}.
+     * <p>This will clear anything set by {@link NetworkImageView#setErrorImageResId} or {@link
+     * NetworkImageView#setDefaultImageDrawable}.
      */
     public void setErrorImageBitmap(Bitmap errorImage) {
         mErrorImageId = 0;
+        mErrorImageDrawable = null;
         mErrorImageBitmap = errorImage;
     }
 
@@ -202,6 +249,8 @@
                             public void onErrorResponse(VolleyError error) {
                                 if (mErrorImageId != 0) {
                                     setImageResource(mErrorImageId);
+                                } else if (mErrorImageDrawable != null) {
+                                    setImageDrawable(mErrorImageDrawable);
                                 } else if (mErrorImageBitmap != null) {
                                     setImageBitmap(mErrorImageBitmap);
                                 }
@@ -232,6 +281,8 @@
                                     setImageBitmap(response.getBitmap());
                                 } else if (mDefaultImageId != 0) {
                                     setImageResource(mDefaultImageId);
+                                } else if (mDefaultImageDrawable != null) {
+                                    setImageDrawable(mDefaultImageDrawable);
                                 } else if (mDefaultImageBitmap != null) {
                                     setImageBitmap(mDefaultImageBitmap);
                                 }
@@ -245,6 +296,8 @@
     private void setDefaultImageOrNull() {
         if (mDefaultImageId != 0) {
             setImageResource(mDefaultImageId);
+        } else if (mDefaultImageDrawable != null) {
+            setImageDrawable(mDefaultImageDrawable);
         } else if (mDefaultImageBitmap != null) {
             setImageBitmap(mDefaultImageBitmap);
         } else {
diff --git a/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java b/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java
index 7705a8f..fd2073e 100644
--- a/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java
+++ b/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java
@@ -21,6 +21,7 @@
 
 import android.content.Context;
 import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
 import android.view.ViewGroup.LayoutParams;
 import android.widget.ImageView.ScaleType;
@@ -90,8 +91,10 @@
 
         assertNotNull(
                 NetworkImageView.class.getMethod("setImageUrl", String.class, ImageLoader.class));
+        assertNotNull(NetworkImageView.class.getMethod("setDefaultImageDrawable", Drawable.class));
         assertNotNull(NetworkImageView.class.getMethod("setDefaultImageBitmap", Bitmap.class));
         assertNotNull(NetworkImageView.class.getMethod("setDefaultImageResId", int.class));
+        assertNotNull(NetworkImageView.class.getMethod("setErrorImageDrawable", Drawable.class));
         assertNotNull(NetworkImageView.class.getMethod("setErrorImageBitmap", Bitmap.class));
         assertNotNull(NetworkImageView.class.getMethod("setErrorImageResId", int.class));
     }
