androidでgifを使う

1982 ワード

今では多くのappがgifを見ることができますが、androidのオリジナルコントロールはgifをサポートしていません.だから第三者に使うには、gifには何も言うことがないことを示しています.
android-gif-drawable
しかし、私はいつも特殊な状況があって、私のように会社がc言語でgifを処理することを要求して、android-gif-drawableもc言語で書いたので、私はファイルが多すぎるのが嫌でネット上で別のc言語を探して書いたのです
AndLibNsgif
これは6つのファイルしかなく、javaレイヤコードは直接捨てられます.
実はGlideを使ってgifを表示することもできますが、あまりよくありません.gifがロードされると再生速度が大きく遅くなります.
glide
まずandroid-gif-drawableについてお話ししましょう.

JAvaロードも簡単
try {
    GifImageView gifImageView = findViewById(R.id.gif_image_view);
    GifDrawable gifFromResource = new GifDrawable( getResources(), R.drawable.test4 );
    gifImageView.setImageDrawable(gifFromResource);
} catch (IOException e) {
    e.printStackTrace();
}

様々なロード方式もサポートされており、一つ一つ列挙されていません
GifDrawableはgifに対して操作することができて、start()、stop()など、ネット上でそれに対する説明が多くて言わないでください
さらにGlideロードgif
GlideApp.with(this).load(R.drawable.test4).into(imageview);

操作gifもGifDrawableでGifDrawableを取得できます
GlideApp.with(this).load(R.drawable.test4).listener(new RequestListener() {
    @Override
    public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
        return false;
    }

    @Override
    public boolean onResourceReady(Drawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {
        GifDrawable gifDrawable = (GifDrawable) resource;
        return false;
    }
}).into(imageView);

すなわちstart()またはstop()を呼び出す
gifを多用すればandroid-gif-drawableが多ければGlideで対応できるのがおすすめです
最後にAndLibNsgifといえば、効率はありますが、javaコードのバグが多すぎて、簡単な移植ですが、cコードにはバグはありません.