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));