【发布时间】:2017-03-02 06:18:43
【问题描述】:
在我的 android 应用程序中,我从服务器接收字节数组,必须将它们转换为 .gif 图像,然后将其放置在视图中。 我已经知道如何使用 BitmapFactory 将它们转换为静止图像,但图像总是静止不动。 我使用gif-drawable 作为 .gif 图像的容器视图。我已经用本地动画 gif 对其进行了测试,效果很好。 如何将字节数组放入 gif 可绘制视图中?
在布局中我有这个:
<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" />
这是一个类似于 ImageView 的视图,可以显示 gif 动画
我想在其中显示我从我的 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 而不是位图?
【问题讨论】:
-
为什么不把输入流转成图片呢?对此有很多支持。无需自己将整个内容读入字节数组。
-
因为我使用的是firebase,除了字节数组我什么都得不到
-
你这是什么意思?您将收到一个字节流。不是字节数组。对字节做什么取决于您。如果你把它们放在一个数组中是的,那么你就有一个字节数组。
-
进一步不清楚字节代表什么。如果您必须将它们转换为 gif,它们包含什么?一张.jpg?一个.png?一个bmp?不是已经是gif图了吗?
-
要使用firebase,您可以使用一个函数从服务器读取信息,然后在具有字节数组参数的回调中接收数据。我与输入流没有任何交互
标签: java android gif animated-gif