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ロードも簡単
様々なロード方式もサポートされており、一つ一つ列挙されていません
GifDrawableはgifに対して操作することができて、start()、stop()など、ネット上でそれに対する説明が多くて言わないでください
さらにGlideロードgif
操作gifもGifDrawableでGifDrawableを取得できます
すなわちstart()またはstop()を呼び出す
gifを多用すればandroid-gif-drawableが多ければGlideで対応できるのがおすすめです
最後にAndLibNsgifといえば、効率はありますが、javaコードのバグが多すぎて、簡単な移植ですが、cコードにはバグはありません.
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コードにはバグはありません.