Je reçois un message d'erreur disant “impossible de convertir de int à Drawable”. Je suis en train d'affecter une image des lieux. Est-il un moyen de contourner cela?
Je n'arrive pas à référencer mon image dans le dossier drawable. J'ai l'image il y a cependant, je reçois un message d'erreur indiquant que je ne peut pas convertir un int en Drawable. mon R.java fichier généré a la chaîne pour l'image, cependant, il est défini comme "public static final int restaurant=0x7f020001;"
package com.CS3040.Places;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import com.CS3040.*;
import com.CS3040.Coursework.R;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.OverlayItem;
public class PlaceOverlayItem extends OverlayItem {
private final GeoPoint point;
private final Place place;
private final Drawable marker;
public PlaceOverlayItem(Place p, String type) {
super(p.getGeoPoint(), p.getName(), p.getFormatted_address());
if(type.equals("restaurant")){ this.marker = R.drawable.restaurant; }
//super.setMarker(this.marker);
this.point = p.getGeoPoint();
this.place = p;
}
/**
* @return the point
*/
public GeoPoint getPoint() {
return point;
}
/**
* @return the place
*/
public Place getPlace() {
return place;
}
}
OriginalL'auteur user1270217 | 2012-03-14
Vous devez vous connecter pour publier un commentaire.
Que vous devez faire comme suit:
La raison pour laquelle vous obtenez le message "La méthode getResources() n'est pas défini pour le type PlaceOverlayItem" c'est parce que getResources() est une méthode héritée de la classe du Contexte, de sorte que vous avez obtenu pour l'appeler à partir d'une Activité (ou si) ou passer le contexte de votre méthode.
Espère que cette aide
getDrawable est obsolète maintenant, utilisez ce stackoverflow.com/questions/29041027/...
OriginalL'auteur Zadec
Je pense que vous voulez quelque chose comme ceci:
Ou, à l'aide de votre solution:
recycle()
votre bitmap lorsque vous avez terminé avec eux.Merci les gars pour votre aide, je suis toujours d'avoir une erreur avec la getResources. "La méthode getResources() n'est pas défini pour le type PlaceOverlayItem".
getResources() est une méthode sur l'Activité.
le
getResources().getDrawable(R.drawable.restaurant);
est obsolète et vous pourriez avoir à utiliser quelque chose commeContextCompat.getDrawable(getContext(), R.drawable.restaurant)
OriginalL'auteur Sparky
R.drawable.restaurant
est une constante de type int qui contient l'id de la drawable ressources restaurant, il n'est pas un objet Dessiné.OriginalL'auteur MByD