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 3

3 ответа:

Попробуйте поместить изображение во все папки drawable quality (drawable-hdpi/drawable-ldpi и т. д.)

Может быть, что эмулятор или устройство, которое вы используете, имеет другую плотность и пытается извлечь изображения из другой папки.

Попробуйте положить

import your.project.package.R;

В вашем импорте, и убедитесь, что ваш R в

R.drawable.android_tiny_image

Указывает на то, что

Я тоже столкнулся с этой проблемой и, кажется, в документации есть объяснение этой проблемы, если я правильно понимаю ресурсы.getDrawable()