事情:
双击视频的view,view全屏。再次双击恢复原状态。 主要包含以下功能点:双击事件监听,视图动态改变layoutParams
解决:
双击监听:
class Doubleclick extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
return false;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
if (titleBar.getVisibility() == View.VISIBLE) {
titleBar.setVisibility(View.GONE);
onlineContent.setVisibility(View.GONE);
LinearLayout.LayoutParams out = (LinearLayout.LayoutParams) onlineCastContent.getLayoutParams();
out.height = LinearLayout.LayoutParams.MATCH_PARENT;
out.setMargins(0, 0, 0, 0);
onlineCastContent.setLayoutParams(out);
}else{
titleBar.setVisibility(View.VISIBLE);
onlineContent.setVisibility(View.VISIBLE);
LinearLayout.LayoutParams out = (LinearLayout.LayoutParams) onlineCastContent.getLayoutParams();
out.height = 453;
out.setMargins(15, 15, 15, 15);
onlineCastContent.setLayoutParams(out);
}
return false;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
return false;
}
}
给activity添加手势监听。
@Override
public boolean onTouchEvent(MotionEvent event) {
return mGestureDetector.onTouchEvent(event);
}
private GestureDetector mGestureDetector;
private RelativeLayout onlineContent;
private RelativeLayout onlineCastContent;
@Override
protected void onCreate(Bundle savedInstanceState) {
mGestureDetector = new GestureDetector(this, new Doubleclick());
}
注意:
在LinearLayout.LayoutParams out = (LinearLayout.LayoutParams) onlineCastContent.getLayoutParams(); 获取时,需要看这个视图的上一层是LinearLayout、还是RelativeLayout。