android draw.createfrompath返回null

时间:2014-07-23 11:37:26

标签: android image url drawable internal-storage

我在内部存储中存储了一个图像文件:

"file:///storage/emulated/0/Download/pdfthumbnail5/helloworld.jpg"

使用图像查看器应用程序打开它没有问题,因此文件不会被删除或无法读取。

我想要做的是,我想在我的自定义列表视图中将此jpg绘制为缩略图,我将所有listview逻辑工作正常(这不是关注点),每次应用程序尝试绘制时图像缩略图,它抱怨图像文件不存在,我试图检查此方法的值:

private static Drawable getDrawableFromUrl(final String url) throws IOException {
        if (url.contains("http")){   //when intent access available
            return Drawable.createFromStream(((java.io.InputStream) new java.net.URL(url).getContent()), "name");
        } else {   // when there is no internet access
            return Drawable.createFromPath(url);
        }
    }

它为Drawable返回null对象.... 顺便说一句,请忽略第一部分if声明,这是因为当应用程序可以访问互联网时,它直接从网址绘制时绘制缩略图没有问题。问题是,它没有从本地内部存储jpg中绘制缩略图。

请帮我解释代码示例。感谢

1 个答案:

答案 0 :(得分:1)

private static Drawable getDrawableFromUrl(final String url, Context context) throws IOException {
        if (url.contains("http")){
            return Drawable.createFromStream(((java.io.InputStream) new java.net.URL(url).getContent()), "name");
        } else {
            return Drawable.createFromPath(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS + "/pdfthumbnail5/helloworld.jpg").toString());
        }
    }

作品!