在java / android

时间:2016-10-20 09:59:17

标签: java android gif animated-gif

在我的Android应用程序中,我从服务器收到一个字节数组,必须将它们转换为.gif图像,然后将其放在视图中。 我已经知道如何使用BitmapFactory将它们转换为静止图像,但图像总是静止不动。 我使用gif-drawable作为.gif图像的容器视图。我用本地动画gif对它进行了测试,效果很好。 如何将字节数组放入gif-drawable视图?

在布局中我有这个:

<pl.droidsonroids.gif.GifImageView
            android:id="@+id/imgExerciseImage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:contentDescription="exercise image" />

这是一个类似于可以显示GIF动画的ImageView的视图

我想在其中显示我从firebase服务器收到的图像。这是代码:

imageRef.getBytes(DatabaseConstants.ONE_MEGABYTE * 3).addOnSuccessListener(new OnSuccessListener<byte[]>() {
            @Override
            public void onSuccess(byte[] bytes) {
                Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
                imgExerciseImage.setImageBitmap(bitmap);
                progressDialog.dismiss();
            }
        }

byte []是动画gif。但为了把它放在我的视野中,我必须使用byte []来形成图像。在这个例子中,我使用BitmapFactory来创建一个位图。我怎样才能创建一个gif而不是位图?

1 个答案:

答案 0 :(得分:1)

看起来gif-drawable附带了一个GifDrawable对象,它可以在它的构造函数中接收一个字节数组来创建一个动画gif,然后可以放在GifImageView中

try {
    GifDrawable gif = new GifDrawable(bytes);
    imgExerciseImage.setImageDrawable(gif);
} catch (IOException e) {
    e.printStackTrace();
}