Итак, я загружаю GIF-файлы в хранилище Firebase, о загрузке и получении заботятся.
Теперь, если я хочу загрузить GIF из URL-адреса, Glide работает лучше всего.С URI (локальное хранилище) Glide работает лучше всего.Даже GifImageView хорош, если я хочу загрузить его из URI
. Теперь я хочу преобразовать этот gif в растровое изображение, а затем в байтовый массив, чтобы сохранить его в моем sqlite в виде большого двоичного объекта.Но теперь, играя gif из растрового изображения, я не мог понять это.Даже GifImageView не смог.
Как сохранить gif в моем приложении, не хочу создавать файлы, поэтому я предполагаю, что sqlite - единственный вариант.Хранение больших двоичных объектов неэффективно, но да, для моей цели это работает.
извлекать из хранилища Firebase легко, напрямую используйте glide для загрузки изображения в URL-адресе в ImageView. Теперь проблема в том,сохраняя растровое изображение этого изображения.Даже это достаточно справедливо.Но загрузка растрового изображения (изображения в формате gif) в ImageView является сложной задачей
Итак, я попробовал этот код:
public void selectImage()
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == PICK_IMAGE_REQUEST && resultCode==RESULT_OK && data != null)
{
ImageUri = data.getData();
trialfunct(ImageUri);
}
}
void trialfunct(Uri uri)
{
try {
Glide.with(this).asBitmap().load(uri).into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
placebm(resource);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}catch (Exception e)
{
Log.d("Bitmap Error", ""+e.toString());
}
}
void placebm(Bitmap bitmap)
{
Glide.with(this).load(bitmap).into(loadImage);
}
, и он работает с обычным изображением, но когда я изменяю строку наGlide.with(this).asGif().load(bitmap).into(loadImage);
и выберите GIF из галереи, этот код не будет работать.так как мне работать с GIF-файлами и растровыми изображениями.