简体   繁体   中英

Show GIF using Glide in AlertDialog

I want to show GIF using Glide in ImageView, and set this ImageView in AlertDialog.

ImageView gifImageView = new ImageView(context);
Glide.with(context).load(recorder.getPictureFile()).asGif().into(gifImageView);

AlertDialog.Builder share_dialog = new AlertDialog.Builder(context);
share_dialog.setMessage("Live Message Saved");
share_dialog.setPositiveButton("Done", null);
share_dialog.setView(gifImageView);
share_dialog.show(); 

But it only shows Message and PositiveButton.

在此处输入图片说明

I can't understand why, what should I do to fix it ?

Update:2017/09/23

I create another project to test this issue, here is the code.

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button_main = (Button)findViewById(R.id.button_main);
        imageView_main = (ImageView)findViewById(R.id.imageView_main);

        GlideDrawableImageViewTarget imageViewMainTarget = new GlideDrawableImageViewTarget(imageView_main);
        Glide.with(MainActivity.this).load(R.raw.test).into(imageViewMainTarget);

        button_main.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ImageView gifImageView = new ImageView(MainActivity.this);
                GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(gifImageView);
                Glide.with(MainActivity.this).load(R.raw.test).into(imageViewTarget);

                AlertDialog.Builder share_dialog = new AlertDialog.Builder(MainActivity.this);
                share_dialog.setMessage("GIF Test");
                share_dialog.setPositiveButton("Done", null);
                share_dialog.setView(gifImageView);
                share_dialog.show();
            }
        });
    }

After running this project.

在此处输入图片说明

GIF can display in imageView_main , but it can't be shown on AlertDialog's gifImageView !

Why ?

Do it like this

ImageView gifImageView = new ImageView(context);

AlertDialog.Builder share_dialog = new AlertDialog.Builder(context);
share_dialog.setMessage("Live Message Saved");
share_dialog.setPositiveButton("Done", null);
share_dialog.setView(gifImageView);
Glide.with(context).load(recorder.getPictureFile()).asGif().into(gifImageView);
share_dialog.show(); 

put your load GLIDE after setting the view.

I solved it, according to the answer of Niranj Patel.

How to put an image in an AlertDialog?? Android

Here is my code.

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button_main = (Button)findViewById(R.id.button_main);
        imageView_main = (ImageView)findViewById(R.id.imageView_main);

        GlideDrawableImageViewTarget imageViewMainTarget = new GlideDrawableImageViewTarget(imageView_main);
        Glide.with(MainActivity.this).load(R.raw.test).into(imageViewMainTarget);

        button_main.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LayoutInflater factory = LayoutInflater.from(MainActivity.this);
                View view = factory.inflate(R.layout.sample, null);
                ImageView gifImageView = (ImageView)view.findViewById(R.id.dialog_imageview);

                GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(gifImageView);
                Glide.with(MainActivity.this).load(R.raw.test).into(imageViewTarget);

                AlertDialog.Builder share_dialog = new AlertDialog.Builder(MainActivity.this);
                share_dialog.setMessage("GIF Test");
                share_dialog.setPositiveButton("Done", null);
                share_dialog.setView(view);
                share_dialog.show();
            }
        });
    }

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM