首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只要按下ImageView,就显示ImageView

只要按下ImageView,就显示ImageView
EN

Stack Overflow用户
提问于 2016-11-25 07:54:51
回答 1查看 26关注 0票数 0

我真的不知道我做错了什么。我正在尝试实现一个方法,它在我的ImageView(container_post)上显示一个overlay(container_dia),其中包含张贴的图像的信息(例如:日期、文件名等)。

只要用户按下ImageView,overlay(container_dia)就会显示出来。为此,我在这里写道:

代码语言:javascript
复制
  fadeIn = AnimationUtils.loadAnimation(mView.getContext(), android.R.anim.fade_in);
            fadeIn.setDuration(100);
            fadeOut = AnimationUtils.loadAnimation(mView.getContext(), android.R.anim.fade_out);
            fadeOut.setDuration(100);

            container_post = (RelativeLayout) mView.findViewById(R.id.container_post);
            container_post.setVisibility(View.VISIBLE);
            container_diagramm = (RelativeLayout) mView.findViewById(R.id.container_diagramm);
            container_diagramm.setVisibility(View.INVISIBLE);
            ImageView postImageLouminadeStream = (ImageView) mView.findViewById(R.id.postImageLouminadeContent);
            Picasso.with(ctx).load(image).into(postImageLouminadeStream);
            postImageLouminadeStream.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View view, MotionEvent motionEvent) {
                    switch (motionEvent.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                            container_post.startAnimation(fadeOut);
                            container_post.setVisibility(view.INVISIBLE);
                            container_diagramm.startAnimation(fadeIn);
                            container_diagramm.setVisibility(View.VISIBLE);
                            break;

                        case MotionEvent.ACTION_UP:
                            container_post.startAnimation(fadeIn);
                            container_post.setVisibility(view.VISIBLE);
                            container_diagramm.startAnimation(fadeOut);
                            container_diagramm.setVisibility(View.INVISIBLE);
                            break;

                        case MotionEvent.ACTION_CANCEL:
                            container_post.startAnimation(fadeIn);
                            container_post.setVisibility(view.VISIBLE);
                            container_diagramm.startAnimation(fadeOut);
                            container_diagramm.setVisibility(View.INVISIBLE);
                            break;
                    }
                    return false;
                }
            });
        }

我读到过,这应该是我想要的正确方法,但它就像一个普通的onClickListener一样工作,因为当我的手指离开屏幕时,overlay会留在屏幕上。当我再次按下Image时,它会瞬间显示Image,然后重叠图像再次出现。有人知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2016-11-25 09:41:34

如果您乐于使用库来获得同样的效果,您可以尝试https://github.com/RiccardoMoro/LongPressPopup

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40795941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档