getDrawable возвращает null
Так как я перебрал свой последний вопрос по этому вопросу из-за публикации другого кода, чем тот, который касается проблемы, я собираюсь попробовать еще раз с правильным кодом...
Итак, вот в чем дело, я запускал некоторые тесты с GoogleMaps API для Android, и когда я пытался настроить CustomItemizedOverlay на моей карте, используя одно из моих изображений, я заметил, что когда я использовал getDrawable для доступа к моему изображению, оно возвращало null, даже когда само eclipse показывает мне, что мое изображение является там, когда я использую сочетание клавиш Ctrl+Backspace, если выбор выигрышного желаю, чтобы Acess :/
Из-за этого я уже несколько часов бьюсь головой о стену. Есть какие-нибудь намеки на то, что здесь не так?Заранее спасибо:)
PS: печать, показывающая, что eclipse показывает мое изображение внутри ресурсов, когда я использую ctrl + backspace http://img.photobucket.com/albums/v328/thiagoshaman/errordrawable.png
Код:
import java.util.List;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
public class MapHandlerActivity extends MapActivity {
private MapView mapView;
private static final int latitudeE6 = 37985339;
private static final int longitudeE6 = 23716735;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
setContentView(R.layout.maphandler);
mapView = (MapView) findViewById(R.id.map_view);
mapView.setBuiltInZoomControls(true);
List<Overlay> mapOverlays = mapView.getOverlays();
Resources res = this.getResources();
Drawable drawable = res.getDrawable(R.drawable.android_tiny_image);
CustomItemizedOverlay itemizedOverlay = new CustomItemizedOverlay(drawable, this);
GeoPoint point = new GeoPoint(latitudeE6, longitudeE6);
OverlayItem overlayItem = new OverlayItem(point, "Olá", "Estou em Athena, Grécia!");
itemizedOverlay.addOverlay(overlayItem);
mapOverlays.add(itemizedOverlay);
MapController mapController = mapView.getController();
mapController.animateTo(point);
mapController.setZoom(6);
}
@Override
protected boolean isRouteDisplayed() {
return true;
}
}
3 ответа:
Попробуйте поместить изображение во все папки drawable quality (drawable-hdpi/drawable-ldpi и т. д.)
Может быть, что эмулятор или устройство, которое вы используете, имеет другую плотность и пытается извлечь изображения из другой папки.
Попробуйте положить
import your.project.package.R;
В вашем импорте, и убедитесь, что ваш R в
R.drawable.android_tiny_image
Указывает на то, что
Я тоже столкнулся с этой проблемой и, кажется, в документации есть объяснение этой проблемы, если я правильно понимаю ресурсы.getDrawable()