/ / Obtenir dessiner de id renvoie une image nulle ou vide en fonction de la méthode - java, android, android-drawable

Obtenir dessinable à partir de id renvoie une image nulle ou vide en fonction de la méthode - java, android, android-drawable

Remarque "Je me réfère à certains commentaires dans la description de mon problème mais les commentaires sont en dehors du conteneur de code, vous devez faire défiler vers la droite pour voir les commentaires.

Donc, je suis en train d’essayer d’obtenir une image (dessinable) de R.drawable mais je me suis heurté à quelques problèmes. ici que getDrawable () peut renvoyer une fausse mise à l'échelle de l'image, j'ai donc suivi l'avis et essayé de tenter 2 (vérifier à nouveau le commentaire du code), mais dans ce cas, l'attribut était nul.

Voici le code:

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

Comme vous pouvez le voir sur la ligne commentée mImage = "flower", j’ai essayé avec 100% de certitude que mImage était valide, mais n’a toujours pas fonctionné.

Réponses:

0 pour la réponse № 1

à partir de la doc TextView:

public void setCompoundDrawables (Drawable left, Drawable top, Dessins à droite, Dessins en bas)

Définit les Drawables (le cas échéant) pour apparaître à lala gauche au-dessus, à droite et en dessous du texte. Utilisez null si vous ne le faites pas veux un Drawable là-bas. Les Drawables doivent déjà avoir eu setBounds (Rect) appelé.

Donc, une fois que vous avez tiré votre dessin, vous devez appeler setBounds sur celui-ci pour spécifier les limites où vous voulez que votre image apparaisse