1

Webサイト( http://radar.weather.gov/ridge/RadarImg/N0R/)から取得してユーザーに表示したいGIFがあります。私はJellyBean(4.1)を構築していますが、このテーマを検索したところ、AndroidではGIFの互換性が失われつつあり、JellyBeanではフラットアウトが機能しないことがわかりました。

そこで、GIFをその場でPNGに変換したいと思います。どうすればいいですか?GIFからPNGファイルにバイトを読み込むのと同じくらい簡単ですか?

ImageViewを使用してUIに画像を表示します。

4

1 に答える 1

2

私の質問を少し変えた後、私はここで全能のグーグルを通して答えを見つけました:

http://gayashan-a.blogspot.com/2012/02/android-how-to-display-gif-image-in.html

ここに要約されています:

public Bitmap getBitmap(String url)
{
    Bitmap bmp = null;
    try
    {
        HttpClient client = new DefaultHttpClient();
        URI imageUri = new URI(url);
        HttpGet req = new HttpGet();
        req.setURI(imageUri);
        HttpResponse resp = client.execute(req);
        bmp = BitmapFactory.decodeStream(resp.getEntity().getContent());            
    }
    catch(URISyntaxException ex)
    {           
        Log.e("ERROR", ex.getMessage());
    }
    catch(ClientProtocolException ex)
    {
        Log.e("ERROR", ex.getMessage());
    }
    catch(IllegalStateException ex)
    {
        Log.e("ERROR", ex.getMessage());
    }
    catch(IOException ex)
    {
        Log.e("ERROR", ex.getMessage());
    }

    return bmp;
}

これにより、PNGに圧縮できるビットマップにデコードされます...

Bitmap mCurrentRadar = getBitmap("http://radar.weather.gov/ridge/RadarImg/N0R/ABC_N0R_0.gif");
ByteArrayOutputStream stream = new ByteArrayOutputStream();     
mCurrentRadar.compress(Bitmap.CompressFormat.PNG, 100, stream);

...またはすぐに使用できますImageView...

ImageView imageView = (ImageView) findeViewById(R.id.radarImageView);
imageView.setImageBitmap(getBitmap("http://radar.weather.gov/ridge/RadarImg/N0R/ABC_N0R_0.gif");
于 2013-02-25T00:18:48.473 に答える