按文件路径将图片加载到Google Map Marker图标

时间:2015-01-04 16:39:24

标签: java android google-maps path marker

我试图显示一个图像,其路径存储在数据库中。

我在所有位置上进行迭代,并为每个位置显示一个标记。然而,通过路径加载照片存在一些问题(标记线)。

private void loadLocations() {
    dataSource.open();
    ArrayList <LocationEntry> locations = dataSource.getLocationsFromTrack(trackId);
    dataSource.close();
    for(int i=0; i<locations.size(); i++)
    {
        map.addMarker(new MarkerOptions()
         .position(locations.get(i).getCoordinates())
         .title(locations.get(i).getName())
         .snippet(locations.get(i).getSnippet())    
         .icon(BitmapDescriptorFactory.fromPath(locations.get(i).getPhotoURL()))); //here
    }
}

移交给fromPath函数的照片网址如下所示:

'/mnt/sdcard/camtest/26'

我检查了这个位置,我确定那个名字的文件存在。所以BitmapDescriptorFactory在处理文件路径时遇到问题,因为它返回null。任何想法如何解决这个问题?通过其路径获取图像的任何其他方法?

1 个答案:

答案 0 :(得分:0)

首先,未设置图像视图,这可能是您获得空指针异常的原因。您可以尝试这两个类和方法调用,以传递存储在SD卡中的图像的位置。

Bitmap bm = BitmapFactory.decodeFile("/mnt/sdcard/camtest/26");     
imageView1.setImageBitmap(bm);

Drawable d = Drawable.createFromPath(path);

不要忘记清单文件权限:

<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>