Android: отображение .gif из интернета - PullRequest
3 голосов
/ 02 марта 2012

Я знаю, что в Android можно сохранять GIF-файлы в объектах Movie, а затем управлять кадром с помощью setTime (). И когда я пытаюсь отобразить .gif с ресурса, он работает нормально.

К сожалению, отображение .gif из URL гораздо менее успешно. Вот соответствующий код:

    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. IOException вызывается в InputStream (потому что вызывается reset ()), но оно также перехватывается в InputStream. Это может иметь или не иметь отношение.

Я не понимаю, почему это не работает. Я в своем уме, и я могу скачать файл и сохранить его, или иметь дело с байтовыми массивами.

1 Ответ

0 голосов
/ 02 марта 2012

Такая же ситуация происходит даже при чтении gif из файла во внутреннем хранилище (не из ресурсов). Способ решить эту проблему - загрузить в byte [] и использовать ByteArrayInputStream для инициации фильма.

...