tutorial tamaño que icon custom android drawable

tamaño - que es un drawable android



Cómo crear Drawable desde el recurso (6)

Tengo una imagen res/drawable/test.png (R.drawable.test).
Quiero pasar esta imagen a una función que acepta Drawable .
(por ejemplo, mButton.setCompoundDrawables ())

Entonces, ¿cómo convertir un recurso de imagen en un Drawable ?


El getDrawable (int id) se deprecia a partir de la API 22.

En su lugar, debe usar getDrawable (int id, Resources.Theme theme) para API 21+

El código se vería algo así.

Drawable myDrawable; if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){ myDrawable = context.getResources().getDrawable(id, context.getTheme()); } else { myDrawable = context.getResources().getDrawable(id); }


Este código está en desuso.

Drawable drawable = getResources().getDrawable( R.drawable.icon );

Utilice este instad.

Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),R.drawable.icon);


Si está intentando obtener el dibujo desde la vista donde se establece la imagen,

ivshowing.setBackgroundResource(R.drawable.one);

entonces el dibujo solo devolverá un valor nulo con el siguiente código ...

Drawable drawable = (Drawable) ivshowing.getDrawable();

Por lo tanto, es mejor configurar la imagen con el siguiente código, si desea recuperar el dibujo de una vista particular.

ivshowing.setImageResource(R.drawable.one);

Sólo entonces se convertirá exactamente el dibujo.


Solo me gustaría agregar que si recibe un mensaje "desaprobado" cuando usa getDrawable (...) debería usar el siguiente método de la biblioteca de soporte.

ContextCompat.getDrawable(getContext(),R.drawable.[name])

No tiene que usar getResources () cuando use este método.

Esto es equivalente a hacer algo como

Drawable mDrawable; if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){ mDrawable = ContextCompat.getDrawable(getContext(),R.drawable.[name]); } else { mDrawable = getResources().getDrawable(R.id.[name]); }

Esto funciona tanto en versiones anteriores como posteriores de Lollipop.


Tu actividad debe tener el método getResources. Hacer:

Drawable myIcon = getResources().getDrawable( R.drawable.icon );


Obtenga Drawable de recursos vectoriales independientemente de si es un vector o no:

AppCompatResources.getDrawable(context, R.drawable.icon);

Nota:
ContextCompat.getDrawable(context, R.drawable.icon); producirá android.content.res.Resources$NotFoundException para recursos vectoriales.