Android: 从互联网显示一个.gif文件

3
我知道在Android中,可以将.gif存储在Movie对象中,并通过setTime()方法操作帧。当我尝试从资源中显示.gif时,它可以正常工作。
不幸的是,从URL中显示.gif的效果要差得多。以下是相关代码:
    public void setMovieURL(String url) throws MalformedURLException, IOException {
        movie = Movie.decodeStream(fetch(url));
    }

    private static InputStream getStreamFromURL(String url) throws MalformedURLException, IOException { 
        return fetch(url);
    }

    public static InputStream fetch(String address) throws MalformedURLException,IOException {
        URL url = new URL(address);
        InputStream content = url.openStream();
        return content;
    }

电影被设置为非空值,但其高度、宽度和持续时间都为0。在InputStream中触发了IOException(因为调用了reset()方法),但也在InputStream内捕获了该异常。这可能与问题相关或不相关。

我不明白为什么这样不起作用。我已经快崩溃了,我的另一个选择是下载并保存该文件,或者处理字节数组。


你尝试过从互联网上不同的位置获取GIF吗? - L7ColWinters
1个回答

0
即使从内部存储(而不是从资源)读取gif文件时,也会出现相同的情况。 解决方法是将其下载到byte[]中,并使用ByteArrayInputStream初始化movie。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接