В моем приложении для Android я получаю массив байтов с сервера и должен преобразовать их в .gif-образ, а затем поместить его в виде. Я уже знаю, как преобразовать их в неподвижное изображение с помощью BitmapFactory, но изображения всегда выходят из строя. Я использую gif-drawable как мой вид контейнера для изображения .gif. Я тестировал его с локальным анимированным gif, и он отлично работает. Как я могу поместить массив байтов в gif-drawable view?преобразовать массив байтов в gif в java/android
в макете у меня есть это:
<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, который может отображать анимированные гифы
Я хочу, чтобы отобразить в нем изображение, которое я получаю от моего 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();
}
}
байт [] - это анимированный gif. но для того, чтобы выразить это, я должен использовать байт [] для формирования изображения. в этом примере im использует BitmapFactory для создания растрового изображения. как я могу создать gif вместо растрового изображения?
Почему бы не преобразовать входной поток в изображение? Много поддержки для этого. Не нужно читать всю вещь в байтовый массив самостоятельно. – EJP
Потому что я использую firebase, и я ничего не могу получить, кроме байтового массива – BelgishChoko
Что вы подразумеваете под этим? Вы получите поток байтов. Не байтовый массив. Это зависит от вас, что вы делаете с байтами. Если вы поместите их в массив yes, тогда у вас будет массив байтов. – greenapps