我真的不知道我做错了什么。我正在尝试实现一种方法,在我的overlay(container_dia)
上显示ImageView(container_post)
,其中包含已发布图像的信息(例如:日期,文件名等)。
只要用户按下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
一瞬间,然后再次显示叠加层。有谁知道我做错了什么?