Androidでサードパーティ製ライブラリAutoLayoutを使用してコントロールのプロパティを動的に設定する
1422 ワード
ここ数日、会社はテレビのトップページsurfaceViewのプレビュー放送をして、プレビューウィンドウをクリックして全画面で放送して、このプロジェクトのトップページはhongyang大神のAutoLayoutを使って、動的に設定できないことを発見して、ネット上でも資料が少ないので、自分でソースコードをめくって見に来ました.最後にやっと解決した.
プロジェクトでは主にsurfaceViewの幅と高さを動的に設定し、マージンはWidthAttr()やMarginLeftAttr()などの属性を使用しています.プロジェクトの必要に応じてAttrパッケージの下に対応する属性クラスを見つけて設定することができます.以下は動的に幅を設定するコードです.
プロジェクトでは主にsurfaceViewの幅と高さを動的に設定し、マージンはWidthAttr()やMarginLeftAttr()などの属性を使用しています.プロジェクトの必要に応じてAttrパッケージの下に対応する属性クラスを見つけて設定することができます.以下は動的に幅を設定するコードです.
AutoLayoutHelper.AutoLayoutParams layoutParams =
(AutoLayoutHelper.AutoLayoutParams) mSfv_live_home.getLayoutParams();
AutoLayoutInfo autoLayoutInfo = layoutParams.getAutoLayoutInfo();
/**
* WidthAttr HeightAttr , ,
* , , baseWidth baseHeight , 0 ,
* WidthAttr(300,0,Attrs.Widht);
* HeightAttr(300,Attrs.Height,0), 。
*/
autoLayoutInfo.addAttr(new WidthAttr(300, 0, 0));
autoLayoutInfo.addAttr(new HeightAttr(300, 0, 0));
/**
* , , 。
*/
ViewGroup.LayoutParams layoutParamsTwo = mSfv_live_home.getLayoutParams();
mSfv_live_home.setLayoutParams(layoutParamsTwo);
}