Androidでサードパーティ製ライブラリAutoLayoutを使用してコントロールのプロパティを動的に設定する

1422 ワード

ここ数日、会社はテレビのトップページsurfaceViewのプレビュー放送をして、プレビューウィンドウをクリックして全画面で放送して、このプロジェクトのトップページはhongyang大神のAutoLayoutを使って、動的に設定できないことを発見して、ネット上でも資料が少ないので、自分でソースコードをめくって見に来ました.最後にやっと解決した.
プロジェクトでは主に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);



                }