背景
當時是Tv項目中涉及到視頻的大小窗播放的這樣一個功能 ,當時我想到的是就是給 VideoView 設置一個單獨的布局 從而對此布局進行操作 上代碼:
首先先你的onCreate方法里
int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.EXACTLY);
int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
mainLl.measure(w, h);
//獲取你原來布局的寬高
int measuredHeight = mainLl.getMeasuredHeight();
int measuredWidth = mainLl.getMeasuredWidth();
//這是你的布局距離上下左右的邊距
//topMargin 上 leftMargin 左 rightMargin 右 bottomMargin 下
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams)
mainLl.getLayoutParams();
int topMargin = params.topMargin;
int leftMargin = params.leftMargin;
int rightMargin = params.rightMargin;
int bottomMargin = params.bottomMargin;
全屏的處理代碼
//你要設置的 FrameLayout 我這里用的是幀布局
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
//mainLl你的布局id
mainLl.setLayoutParams(params);
縮小的處理代碼
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(measuredWidth , measuredHeight );
layoutParams.setMargins(leftMargin, topMargin, rightMargin , bottomMargin);
mainLl.setLayoutParams(layoutParams);