androidandroid-drawableandroid-resourcesandroid-5.1.1-lollipop

Android getResources().getDrawable() deprecated API 22


With new android API 22 getResources().getDrawable() is now deprecated. Now the best approach is to use only getDrawable().

What changed?


Solution

  • You have some options to handle this deprecation the right (and future proof) way, depending on which kind of drawable you are loading:


    A) drawables with theme attributes

    ContextCompat.getDrawable(getActivity(), R.drawable.name);
    

    You'll obtain a styled Drawable as your Activity theme instructs. This is probably what you need.


    B) drawables without theme attributes

    ResourcesCompat.getDrawable(getResources(), R.drawable.name, null);
    

    You'll get your unstyled drawable the old way. Please note: ResourcesCompat.getDrawable() is not deprecated!


    EXTRA) drawables with theme attributes from another theme

    ResourcesCompat.getDrawable(getResources(), R.drawable.name, anotherTheme);