Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ImageView中显示从数据库下载的图像_Java_Android_Amazon Web Services - Fatal编程技术网

Java 在ImageView中显示从数据库下载的图像

Java 在ImageView中显示从数据库下载的图像,java,android,amazon-web-services,Java,Android,Amazon Web Services,我正在开发一个Android应用程序,允许用户向数据库上传/下载图像(由Amazon AWS提供支持)我面临的问题是,我可以成功地将文件下载到目录中 /storage/emulated/0/data/myfile.jpg 但我无法将它们显示为新的图像视图。 下面是我处理显示方法的方法。请注意,RefreshFeedTask.downloadedFiles是位图列表,如下所示: do { objectListing = s3Client.listObjects(listObje

我正在开发一个Android应用程序,允许用户向数据库上传/下载图像(由Amazon AWS提供支持)我面临的问题是,我可以成功地将文件下载到目录中

/storage/emulated/0/data/myfile.jpg
但我无法将它们显示为新的图像视图。

下面是我处理显示方法的方法。请注意,RefreshFeedTask.downloadedFiles是位图列表,如下所示:

 do {
        objectListing = s3Client.listObjects(listObjectsRequest);
        for (S3ObjectSummary objectSummary :
                objectListing.getObjectSummaries()) {

           keys.add(objectSummary.getKey());
        }
        listObjectsRequest.setMarker(objectListing.getNextMarker());
    } while (objectListing.isTruncated());

    Iterator<String> o = keys.iterator();

    while(o.hasNext())
    {

        String n = o.next();
        File file = new File(Environment.getExternalStorageDirectory()+"/data/", n);
        if(!file.exists())
        {
            try {
                file.createNewFile();

            } catch (IOException e) {
                e.printStackTrace();
            }
        }


        TransferObserver observer = transferUtility.download(
                existingBucketName,
                n,
                file);

        Bitmap m = BitmapFactory.decodeFile(file.getAbsolutePath());

非常感谢您的帮助,因为我对Android开发有些陌生,但不是Java开发。

这里的一个问题是所有权

建议:您刚刚下载到该位置的文件,您的应用程序可能不拥有该位置。如果这是一个封闭的生态系统,您是该文件的唯一用户和所有者,那么您可能应该在运行应用程序时创建一个特定于应用程序的目录

在SD卡中显示您不拥有的内容的最佳方式是使用Android中的MediaStore API来访问它们。您需要一个正确路径的URI,通常不建议只执行绝对路径,尤其是对于图像资产

下面是一个很好的例子:
这里的一个问题是所有权

建议:您刚刚下载到该位置的文件,您的应用程序可能不拥有该位置。如果这是一个封闭的生态系统,您是该文件的唯一用户和所有者,那么您可能应该在运行应用程序时创建一个特定于应用程序的目录

在SD卡中显示您不拥有的内容的最佳方式是使用Android中的MediaStore API来访问它们。您需要一个正确路径的URI,通常不建议只执行绝对路径,尤其是对于图像资产

下面是一个很好的例子:

看起来您没有将新的
图像视图添加到任何视图中,请尝试将新的
图像视图添加到任何容器中以显示它

parentLayout.addView(theNewImageView);

另一个提示:如果您想更高效地显示许多图像,可以尝试。

看起来您没有将新的
ImageView
添加到任何视图中,请尝试将新的
ImageView
添加到任何容器中以显示它

parentLayout.addView(theNewImageView);

另一个提示:如果您想更高效地显示许多图像,可以尝试一下。

谢谢!c:谢谢!修正了c: