Android getDrawable返回null
由于发布了与问题相关的代码不同的代码,因此我已经解决了关于此问题的最后一个问题,我将使用正确的代码重试 这就是交易,我一直在用Google Maps API为Android运行一些测试,当我试图用我的一张图片在我的地图上设置一个定制的Overlay时,我注意到,当我使用getDrawable访问我的图像时,它返回null,即使eclipse本身显示我的图像在那里,当我在选择要访问的drawable时使用ctrl+backspace时:/ 我已经为此绞尽脑汁好几个小时了。这里有什么不对劲的线索吗 提前感谢:) PS:当我使用ctrl+backspace时,显示eclipse在资源中显示我的图像的打印 代码:Android getDrawable返回null,android,resources,nullpointerexception,getresource,Android,Resources,Nullpointerexception,Getresource,由于发布了与问题相关的代码不同的代码,因此我已经解决了关于此问题的最后一个问题,我将使用正确的代码重试 这就是交易,我一直在用Google Maps API为Android运行一些测试,当我试图用我的一张图片在我的地图上设置一个定制的Overlay时,我注意到,当我使用getDrawable访问我的图像时,它返回null,即使eclipse本身显示我的图像在那里,当我在选择要访问的drawable时使用ctrl+backspace时:/ 我已经为此绞尽脑汁好几个小时了。这里有什么不对劲的线索吗
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;
}
import java.util.List;
导入android.content.res.Resources;
导入android.graphics.drawable.drawable;
导入android.os.Bundle;
导入com.google.android.maps.GeoPoint;
导入com.google.android.maps.MapActivity;
导入com.google.android.maps.MapController;
导入com.google.android.maps.MapView;
导入com.google.android.maps.Overlay;
导入com.google.android.maps.OverlayItem;
公共类MapHandlerActivity扩展了MapActivity{
私有地图视图;
私有静态最终int-latitudeE6=37985339;
专用静态最终int-longitudeE6=23716735;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
setContentView(R.layout.maphandler);
mapView=(mapView)findViewById(R.id.map\u视图);
mapView.SetBuilTinZoomControl(真);
List mapOverlays=mapView.getOverlays();
Resources res=this.getResources();
Drawable Drawable=res.getDrawable(R.Drawable.android\u tiny\u image);
CustomItemizedOverlay itemizedOverlay=新的CustomItemizedOverlay(可绘制,此);
地质点=新的地质点(纬度E6、纬度E6);
OVERLAYTEM OVERLAYTEM=新的OVERLAYTEM(点,“Olá”,“Estou em Athena,Grécia!”);
itemizedOverlay.addOverlay(overlayItem);
添加(itemizedOverlay);
MapController MapController=mapView.getController();
mapController.animateTo(点);
mapController.setZoom(6);
}
@凌驾
受保护的布尔值isRouteDisplayed(){
返回true;
}
}试着放
import your.project.package.R;
在您的导入中,并确保您的R
R.drawable.android_tiny_image
正在指向该尝试将图像放在所有可绘制质量文件夹(可绘制hdpi/可绘制ldpi等)中
可能是您使用的仿真器或设备密度不同,正在尝试从另一个文件夹中提取图像。我也遇到了此问题,并且似乎在文档中,如果我理解正确,则说明问题。仍然无法工作:(说真的,这没有意义!x_x看到了吗?Eclipse本身显示我的图像在那里,但它仍然返回null!嗯,好主意!现在尝试了,但仍然不起作用:/而且问题没有影响到1个图像,我无法访问我资源中的任何图像,以前从未见过这种情况:/@thiagocolehofarinazzobalduc形式是什么在图像的结尾?也尝试将图像放在父可绘制文件夹中。我的图像是png,我将尝试将其放入/drawable中,看看是否有效!谢谢!叹气,仍然返回null heck:/@thiagocolehofarinazzobalduc这真的很奇怪。在调试器中逐步检查它。确保getResources()正在返回并查看返回的内容,以查看是否可以找到可绘制的。是否在图像中使用.png、.jpg或.gif以外的扩展名?它可能无法识别其他扩展名类型。