getresources getdrawable java android eclipse android-drawable

java - getresources - getdrawable android



Android: alternativa para context.getDrawable() (7)

Acepto usar ContextCompact.getDrawable (Context context, int resID). Funcionó para mí y mi aplicación apunta a API 19.

He usado context.getDrawable() así en mi proyecto:

Drawable greenProgressbar = context.getDrawable(R.drawable.custom_progressbargreen);

Pero Eclipse me está dando un error de que necesita un Minimum API level of 21 . Esto significaría que después de una búsqueda rápida en Google, mi aplicación solo podrá utilizarse en Android 5.0 . Como no todos los dispositivos usan esta versión de Android, me gustaría tener una alternativa para context.getDrawable() .


Debe usar "getDrawable (id, this.getTheme ())". Este método no está en desuso hasta ahora.

AppCompatResources.getDrawable(context, R.drawable.*)


El método previamente aceptado ha quedado en desuso, de acuerdo con la documentación del SDK 22:

Antes de android.os.Build.VERSION_CODES # JELLY_BEAN, esta función no recuperaría correctamente la densidad de configuración final cuando el ID de recurso pasado aquí es un alias a otro recurso Drawable. Esto significa que si la configuración de densidad del recurso alias es diferente que el recurso real, la densidad del Drawable devuelto sería incorrecta, lo que daría lugar a una mala escala.

Como se señaló en esta respuesta, la mejor solución sería usar ContextCompat : ContextCompat.getDrawable(context, R.drawable.***)


Intente agregar un getResources() después del contexto, así que esto:

Drawable greenProgressbar = context.getResources().getDrawable(R.drawable.custom_progressbargreen);

Deberia trabajar.


Prueba esto:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { view.setBackground(getResources().getDrawable(R.drawable.radioline,this.getTheme())); } else { view.setBackground(getResources().getDrawable(R.drawable.radioline)); }


Tuve la misma situación que quería hacer referencia al método getDrawable () que ahora está en desuso.

lo que usé

Drawable greenProgressbar = context.getResources().getDrawable(R.drawable.custom_progressbargreen);

Espero que esto te ayudará


Tuve un problema similar antes. ¿Has intentado hacerlo así?

myButton.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.ic_btn_off));