我真的不知道我做错了什么。我正在尝试实现一个方法,它在我的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,然后重叠图像再次出现。有人知道我做错了什么吗?
发布于 2016-11-25 09:41:34
如果您乐于使用库来获得同样的效果,您可以尝试https://github.com/RiccardoMoro/LongPressPopup
https://stackoverflow.com/questions/40795941
复制相似问题