检查BitmapDescriptor是否为null

时间:2014-02-06 03:48:32

标签: java android google-maps-android-api-2

我想检查BitmapDescriptor是否为空。

BitmapDescriptorFactory.fromAsset的文档指出:

  

返回   从资产加载的BitmapDescriptor,如果加载失败,则返回null。

    BitmapDescriptor bd = BitmapDescriptorFactory.fromAsset("markerimages/filename.png");
    if (bd == null) {
        // doSomething...
    }

尽管如此,我无法在空状态下捕获BitMapDescriptor - 即使我传递的文件名不存在,fromAsset方法也不会返回null。

2 个答案:

答案 0 :(得分:1)

可能是fromAsset方法不返回null,但可能返回与defaultMarker()返回相同的方法。 (即文件错误)

我会检查你得到的(可能是不存在的)资产的值是'=='还是.Equals是defaultMarker()。这可能是您检测不存在的资产的方式。

答案 1 :(得分:0)

我发现,与文档相反,如果指定的资产不存在,BitmapDescriptorFactory.fromAsset(String)不会返回null。我目前正在实现一个工作,我预先加载使用AssetManager.list(“”)存在的资产列表。然后,对于有问题的资产名称,我搜索缓存的资产列表以确定指定的资产是否存在。

这是我可以解决的资源最少的方法,因为当资产不存在时我无法依赖空值返回。