/ / Obtener dibujable desde ID devuelve una imagen nula o vacía según el método: java, android, android-drawable

Obtener dibujable de id devuelve una imagen nula o vacía según el método: java, android, android-drawable

Nota Me estoy refiriendo a algunos comentarios en la descripción de mi problema, pero los comentarios están fuera del contenedor de código, debe desplazarse hacia la derecha para ver los comentarios.

Entonces, estoy tratando de obtener una (imagen) dibujable de R.drawable pero me he topado con algunos problemas. Comencé con el intento 1 (verifique el comentario del código) y obtuve una imagen con todos los límites = 0. Pero luego leí aquí que getDrawable () podría devolver una escala falsa de la imagen, así que seguí el aviso e intenté el intento 2 (verifique nuevamente el comentario del código), pero en este caso el dibujable era nulo.

Aquí está el código:

private void setCurrentImage(){
TextView text = (TextView)profileView.findViewById(R.id.profile_image);
//mImage = "flower";
int id = R.drawable.flower;
if(mImage.equals("flower"))
id = R.drawable.flower;
if(mImage.equals("event_splash"))
id = R.drawable.event_splash;
if(mImage.equals("football"))
id = R.drawable.football;
if(mImage.equals("foxhead"))
id = R.drawable.foxhead;
if(mImage.equals("computer"))
id = R.drawable.computer;
//Drawable image = getResources().getDrawable(R.drawable.foxhead);          //attempt 1
TypedArray attr = getActivity().obtainStyledAttributes(new int[]{id});      //attempt 2
Drawable image = attr.getDrawable(0);                                       //attempt 2
Log.d("bounds", image.getBounds().toString());
text.setCompoundDrawables(image, null, null, null);
}

Como se puede ver en la línea comentada mImage = "flor" Probé con 100% de certeza que mImage era válido, aún no funcionó.

Respuestas

0 para la respuesta № 1

desde el documento TextView:

public void setCompoundDrawables (Drawable left, Drawable top, Derecho dibujable, Fondo dibujable)

Establece los Drawables (si los hay) para que aparezcan en elizquierda de, arriba, a la derecha y debajo del texto. Use nulo si no lo hace quiero un Drawable allí. Los Drawables deben haber tenido ya SetBounds (Rect) llamado.

Así que una vez que sacó su dibujo, debe usar setBounds para especificar los límites en los que desea que aparezca su imagen.