How do you obtain a Drawable object from a resource id in android package? How do you obtain a Drawable object from a resource id in android package? android android

How do you obtain a Drawable object from a resource id in android package?


Drawable d = getResources().getDrawable(android.R.drawable.ic_dialog_email);ImageView image = (ImageView)findViewById(R.id.image);image.setImageDrawable(d);


As of API 21, you should use the getDrawable(int, Theme) method instead of getDrawable(int), as it allows you to fetch a drawable object associated with a particular resource ID for the given screen density/theme. Calling the deprecated getDrawable(int) method is equivalent to calling getDrawable(int, null).

You should use the following code from the support library instead:

ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)

Using this method is equivalent to calling:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {    return resources.getDrawable(id, context.getTheme());} else {    return resources.getDrawable(id);}


As of API 21, you could also use:

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

Instead of ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)