【问题标题】:Camera intent returns thumbnail, but want to tap on thumbnail to display original image相机意图返回缩略图,但想点击缩略图以显示原始图像
【发布时间】:2014-12-10 23:08:15
【问题描述】:

我已经为此苦苦挣扎了几天。在我的应用程序中,用户点击地图上的点(谷歌地图 v2),然后用户可以拍照并将缩略图返回到该点。所有作品,但现在想点击缩略图并全屏或在图像视图中返回原始图像。谁能帮我解决这个问题?

这是我的相机意图:

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, CAPTURE_IMAGE_THUMBNAIL_ACTIVITY_REQUEST_CODE);

OnActivityResult:

 File imageStorageFolder = new File(Environment.getExternalStorageDirectory()+File.separator+"Folder");
        if (!imageStorageFolder.exists())
        {
            imageStorageFolder.mkdirs();
            Log.d(TAG , "Folder created at: "+imageStorageFolder.toString());
        }
        if (data != null)
        {
            String filename = "image";
            String fileNameExtension = ".jpg";
            File sdCard = Environment.getExternalStorageDirectory();
            String imageStorageFolder1 = File.separator+"Folder"+File.separator;
            File destinationFile = new File(sdCard, imageStorageFolder1 + filename + fileNameExtension);
            Log.d(TAG, "the destination for image file is: " + destinationFile );
            if (data.getExtras() != null)
            {
                bitmap = (Bitmap)data.getExtras().get("data");
                try
                {
                    FileOutputStream out = new FileOutputStream(destinationFile);
                    bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
                    out.flush();
                    out.close();
                }
                catch (Exception e)
                {
                    Log.e(TAG, "ERROR:" + e.toString());
                }

然后在 onMarkerClick 上:

@Override
        public boolean onMarkerClick (Marker arg0){
         Intent intent = new Intent();
         intent.setAction(Intent.ACTION_VIEW);
         Uri imgUri = Uri.parse("bitmap" + "data");
         intent.setDataAndType(imgUri, "image/*");
         startActivity(intent);
          return false;

当点击 onMarkerClick 时,会弹出一个窗口,其中包含一个图标,表示该图像无法显示。 (喜欢和图像坏了)

有人可以帮忙吗?

【问题讨论】:

    标签: android image android-intent


    【解决方案1】:

    onMarkerClick 方法中,您以Uri.parse("bitmap" + "data") 的方式创建 Uri。所以最后你试图用 Uri bitmapdata 展示图片。您应该将图片的正确 Uri 传递给 Uri.parse 方法。您将图片保存在destinationFile 下,因此创建一个File destinationFile 类成员字段并通过Uri.parse(destinationFile.toString()) 获取Uri。

    如果要正确显示给定Marker 的每张图片,则必须存储已保存图片的所有文件的Uris。例如,您可以有一个Map<Integer, Uri>,其中键是Markers id,值是图片Uris。然后在onMarkerClick 中通过Marker.getId() 获取点击标记的id,并使用它从Map 获取适当的Uri 用于图片。

    【讨论】:

    • 你能告诉我我需要做什么吗?
    • 好的,我有Uri destinationFile; 然后添加了你给我的代码,但现在点击缩略图时应用程序崩溃了?我现在可能在这里真的很愚蠢..
    • 没关系,只是有点愚蠢。现在可以工作了,但是它不会在第一个标记上显示相机拍摄的第一张图像,它似乎只显示拍摄的最后一张图像,所以当我有多个标记时,它们都会显示相同的图像,即不是我想要的。
    • 您必须存储已保存图片的所有文件的 Uris。例如,您可以有一个Map<Integer, Uri>,其中键是Marker ids,值是图片Uris。然后在onMarkerClick 中通过Marker.getId() 获取点击标记的id 并使用它从Map 获取图片的适当Uri。
    • 酷 非常感谢!!,你有这样的例子吗?我问的原因是因为我正忙于训练自己,并且发现在编写应用程序时更容易获得代码和研究它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 2011-05-05
    相关资源
    最近更新 更多