Search code examples
androidimageviewandroid-vectordrawable

How to set VectorDrawable as an image for ImageView programmatically


I want to set some vectorDrawables to a ImageView in Android Studio.

I can set png and jpg drawable easily but when i want to set VectorDrawable, it does not work on imageview.

img.setImageResource(R.drawable.ic_home);

ic_home is VectorDrawable and this code doesn't work.


Solution

  • If you want to use vector drawables (less OR greater than API 21) just do the following:

    Set the image programmatically (e.g. in your activity):

    imageView.setImageResource(R.drawable.ic_left_arrow_blue); 
    

    or by XML:

    app:srcCompat="@drawable/your_vector_name"
    

    In your app's build.gradle you need to include:

    android {
        defaultConfig {
            vectorDrawables.useSupportLibrary = true
        }
    }
    

    And for vector support for less then API 21, add the following to onCreate:

    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);