【发布时间】:2014-12-12 14:46:36
【问题描述】:
好的,这个问题我已经面临几天了,似乎无法解决。
这就是我的地图的工作方式:
- 点击地图上的任意一点
- 按相机意图拍照
- 将照片作为标记(缩略图)返回到点击的特定点。
(以上都正常)
这是我卡住的地方:
点击标记(图像)它应该会显示更大的标记图像,因为标记缩略图非常小。问题是它显示的是最新拍摄的图像,而不是与该标记相关的图像。所以我的问题是如何设置标记 ID,以便当用户点击该标记以显示完整图像时。我之前在这里问过这个问题,但不得不更改我的代码,以便将图像保存在设备上的文件夹中。还有一个单独的类来创建缩略图。 (但我认为这对添加标记 id 没有任何影响)
这是在为标记显示正确图像之前一直有效的代码。 (这只是显示最新拍摄的图像):
相机意图
Intent getCameraImage = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
getApplicationContext().getDir(
getResources().getString(R.string.app_name), MODE_PRIVATE);
fileUri = Uri.fromFile(new File((Environment.getExternalStorageDirectory() +
"/" +getResources().getString(R.string.app_name)),new Date().getTime() + ".jpg"));
getCameraImage.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(getCameraImage, TAKE_PICTURE);
onActivityResult
if (requestCode == TAKE_PICTURE && resultCode == RESULT_OK) {
try {
GetImageThumbnail getImageThumbnail = new GetImageThumbnail();
bitmap = getImageThumbnail.getThumbnail(fileUri, this);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
{
MarkerOptions markerOptions = new MarkerOptions()
.draggable(true)
.snippet("Tap here to remove marker")
.title("My Marker")
.position(pointtap)
.icon(BitmapDescriptorFactory
.fromBitmap(bitmap));
googleMap.addMarker(markerOptions);
}
}
}
onMarkerClick
@Override
public boolean onMarkerClick(Marker marker) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set title
alertDialogBuilder.setTitle("My Marker");
// set dialog message
alertDialogBuilder
.setMessage("Select Option")
.setCancelable(false)
.setPositiveButton("Display full Image",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri imgUri = Uri.parse("file://" + fileUri);
intent.setDataAndType(imgUri, "image/*");
startActivity(intent);
}
})
.setNegativeButton("Delete Marker",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
marker.remove();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
return false;
我希望有人能向我展示如何实现标记 ID,以便在用户点击标记时全屏显示为该标记拍摄的图像。
谢谢大家!
更新 必须实现 AlertDialog 来显示两个选项,一个是删除标记,一个是显示完整图像,显示完整图像是我正在努力在地图上显示该点拍摄的图像。
【问题讨论】:
标签: android google-maps android-intent