在AlertDialog中使用Glide显示GIF

时间:2017-09-22 13:43:59

标签: android imageview alertdialog gif android-glide

我想在ImageView中使用Glide显示GIF,并在AlertDialog中设置此ImageView。

swaps[(5,Years)].setValue(0.016)

但它只显示Message和PositiveButton。

enter image description here

我无法理解为什么,我该怎么做才能解决它?

更新:2017年9月23日

我创建另一个项目来测试这个问题,这是代码。

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(); 

运行此项目后。

enter image description here

GIF可以在 imageView_main 中显示,但无法在 AlertDialog的gifImageView 中显示!

为什么?

2 个答案:

答案 0 :(得分:0)

这样做

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(); 

在设置视图后放置GLIDE。

答案 1 :(得分:-1)

根据Niranj Patel的回答,我解决了这个问题。

How to put an image in an AlertDialog?? Android

这是我的代码。

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();
            }
        });
    }

enter image description here