내 안드로이드 앱에서 서버로부터 바이트 배열을 받고이를 .gif 이미지로 변환 한 다음보기에 배치해야합니다. BitmapFactory를 사용하여 이미지를 스틸 이미지로 변환하는 방법을 이미 알고 있지만 이미지는 항상 나옵니다. .gif 이미지에 대한 컨테이너보기로 gif-drawable을 사용하고 있습니다. 로컬 애니메이션 GIF로 테스트 해 보았는데 훌륭하게 작동합니다. 바이트 배열을 gif-drawable 뷰에 넣을 수 있습니까?바이트 배열을 java/android의 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" />
이 내가 그 안에 내 중포 기지 서버에서받은 이미지를 표시 할 애니메이션 GIF
를 표시 할 수 있습니다 이미지 뷰와 유사한 도면이다 : 레이아웃의나는이 있습니다 . 이것은 코드입니다 :
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입니다. 하지만 내보기에 넣으려면 바이트 [] 이미지를 형성하는 데 사용해야합니다. 이 예제에서는, 비트 맵을 생성하기 위해 BitmapFactory를 사용합니다. 어떻게 비트 맵 대신 gif를 만들 수 있습니까?
에 배치 할 수있는 애니메이션 GIF를 만드는 그것의 생성자에서 바이트 배열을받을 수있는 GifDrawable 객체와 함께 제공 나타납니다 이미지? 그것에 대한 많은 지원. 전체 내용을 직접 바이트 배열로 읽을 필요가 없습니다. – EJP
나는 firebase를 사용하고 있기 때문에 바이트 배열을 제외하고 아무것도 얻을 수 없습니다. – BelgishChoko
그게 무슨 뜻입니까? 바이트 스트림이 수신됩니다. 바이트 배열이 아닙니다. 바이트로 무엇을할지는 당신에게 달려 있습니다. 배열에 넣어두면 바이트 배열이됩니다. – greenapps