【问题标题】:Show ImageView as long as the ImageView is pressed只要按下 ImageView 就显示 ImageView
【发布时间】:2016-11-24 23:54:50
【问题描述】:

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

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

  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,然后覆盖再次出现。有谁知道我做错了什么?

【问题讨论】:

    标签: android imageview android-recyclerview onclicklistener ontouchlistener


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多