Загрузка растрового изображения GIF в ImageView - PullRequest
0 голосов
/ 30 апреля 2019

Итак, я загружаю 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-файлами и растровыми изображениями.

...