这有什么好的示例代码吗? (在地图上显示照片缩略图)
以下是我自己尝试过的代码,但它不起作用: 如果找到缩略图路径,请将其设置为overlayitem的标记,否则使用默认标记。
问题是只显示带有defaultMarker的项目。超过100张照片,只找到1张照片的缩略图路径,似乎我检索缩略图的方式有点不正确。
如果你不介意,那就很啰嗦了。谢谢!
Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
PhotoOverlay itemizedoverlay = new PhotoOverlay(drawable, this);
String selection = MediaStore.Images.ImageColumns.LATITUDE + " is not null";
Cursor c = this.managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, selection, null, null);
while ( c.moveToNext()){
int longitude = (int) (c.getDouble(c.getColumnIndex(MediaStore.Images.ImageColumns.LONGITUDE)) * 1e6);
int latitude = (int) ( c.getDouble(c.getColumnIndex(MediaStore.Images.ImageColumns.LATITUDE))* 1e6);
String title = c.getString(c.getColumnIndex(MediaStore.Images.ImageColumns.TITLE));
String description = c.getString(c.getColumnIndex(MediaStore.Images.ImageColumns.DESCRIPTION));
long imgId = c.getLong(c.getColumnIndex(MediaStore.Images.ImageColumns._ID));
long thumbId = c.getLong(c.getColumnIndex(MediaStore.Images.ImageColumns.MINI_THUMB_MAGIC));
GeoPoint point = new GeoPoint(latitude, longitude);
OverlayItem overlayitem = new OverlayItem(point, title, description);
//Cursor ct = Thumbnails.queryMiniThumbnail(this.getContentResolver(), imgId, Thumbnails.MICRO_KIND, null);
String[] args = new String[]{String.valueOf(thumbId)};
Cursor ct = managedQuery(Thumbnails.EXTERNAL_CONTENT_URI, null, Thumbnails._ID + "= ?", args, null);
if( ct.moveToFirst() ){
String path = ct.getString(ct.getColumnIndex(Thumbnails.DATA));
BitmapDrawable d = new BitmapDrawable(this.getResources(), path);
itemizedoverlay.addOverlay(overlayitem, d);
} else {
itemizedoverlay.addOverlay(overlayitem, null);
}
}
c.close();
overlays.add(itemizedoverlay);
PhotoOverlay.addItem()
public void addOverlay(OverlayItem i, Drawable marker){
if( marker != null ){
i.setMarker(boundCenterBottom(marker));
}
mOverlays.add(i);
populate();
}
答案 0 :(得分:0)
检查以下链接
我使用博客并相信我不仅可以在地图上绘制任何内容,还可以为视图设置动画。使用这个i implmented drop pin效果就像Android中的iPhone一样
使用Canvas和onDraw方法很难,但是处理事情的最佳和核心方法。
希望有所帮助:)