我正在尝试为我的应用程序中的相机视图提供全屏按钮。不幸的是,在过渡期间,该应用在实际动画之前显示了新计算的参数。我的意思是,相机视图的新尺寸会出现一段时间(闪烁),然后屏幕变黑,最后,展开动画完成。这是我的方法:
fullScreenBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isFullScreen){
TransitionManager.beginDelayedTransition(transitionsContainer);
fragmentContener.setVisibility(View.VISIBLE);
hudView.setVisibility(View.VISIBLE);
mCameraContent.setLayoutParams(params);
isFullScreen = false;
} else {
TransitionManager.beginDelayedTransition(transitionsContainer);
fragmentContener.setVisibility(View.GONE);
hudView.setVisibility(View.GONE);
mCameraContent.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
isFullScreen = true;
}
}
fullScreenBtn
在角落的摄像机预览中处于mCameraContent
布局中。 transitionContainer
是整个活动的布局。我认为值得注意的是,我的活动布局分为两个相等的视图:baseContener
和fragmentContener
,hudView
位于baseContener
下面的mCameraContent
内部。它们正在逐渐消失,唯一的问题是相机预览。我试图将Slide()
或ChangeBounds()
添加到beginDelayedTransition
方法中,但这不能解决问题。我该怎么做才能避免该视图闪烁?