getDrawable返回null

3

由于我上次发布了一个与问题不相关的代码而导致我的问题被破解,所以我将使用正确的代码再试一次...

所以这就是问题所在,我一直在为Android的GoogleMaps API运行一些测试,当我尝试在我的地图上使用CustomItemizedOverlay来使用我的图像时,我注意到当我使用getDrawable访问我的图像时,它返回null,即使当我使用ctrl + backspace选择要访问的drawable时,eclipse本身显示我的图像存在 :/

因为这个问题,我已经头痛了几个小时。有什么线索错在哪里吗?

提前感谢:)

PS:打印显示当我使用ctrl + backspace时,eclipse在资源中显示我的图像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;
}

}


你在图片中使用了除 .png、.jpg 或 .gif 以外的扩展名吗?它可能无法识别其他扩展类型。http://developer.android.com/guide/topics/resources/drawable-resource.html - Ralph Pina
3个回答

3

尝试将图像放入所有drawable质量文件夹中(如drawable-hdpi / drawable-ldpi等)。

可能是您使用的模拟器或设备具有不同的密度,并尝试从另一个文件夹中提取图像。


嗯,好主意!我现在尝试了一下,但还是不行 :/ 问题不仅仅影响一个图像,我无法访问资源中的任何图像,以前从未遇到过这种情况 :/ - thiagocfb
@ThiagoCoelhoFarinazzoBalduc 这个图像的格式是什么?同时尝试将图像放在父级drawable文件夹中。 - monokh
我的图片是PNG格式的,我将尝试将其放入/Drawable文件夹中,看看是否可以正常工作!谢谢! - thiagocfb
叹气,仍然返回null,真糟糕 :/ - thiagocfb
@ThiagoCoelhoFarinazzoBalduc 这真的很奇怪。在调试器中逐步执行它。确保getResources()实际上返回并查看它返回的内容,以查找您的drawable。 - monokh
发现问题了,似乎我的图片出了些问题,这就是为什么getDrawable返回null的原因!感谢您的帮助 :) - thiagocfb

0

0

尝试放置

import your.project.package.R;

在你的导入中,确保你的 R 在其中

R.drawable.android_tiny_image

指向那个


还是不行:( 真的,这毫无意义!x_x http://img.photobucket.com/albums/v328/thiagoshaman/errordrawable.png 你看吗?Eclipse本身显示我的图像在那里,但它仍然返回null! - thiagocfb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接