android開發中如何通過程式碼設定控制元件的寬度和高度
阿新 • • 發佈:2019-02-10
原理:通過控制元件的setLayoutParams(params)來設定。而params的型別主要是根據該控制元件的父控制元件的型別來定義的。
例如,1、main.xml檔案內容如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_horizontal" android:orientation="vertical"> <RelativeLayout android:id="@+id/rlayout_video" android:layout_width="match_parent" android:layout_height="200dp" > <SurfaceView android:id="@+id/sv" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout> </LinearLayout>
2、在MainActivity.java的onCreate( )方法中,獲取當前手機螢幕的寬和高。程式碼如下:
private RelativeLayout rLayout_video;
private int screenWidth;
private int screenHeight;
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); screenWidth= dm.widthPixels; screenHeight= dm.heightPixels;
然後,獲取目標控制元件rLayout_video,從main.xml中可知它的父元件是LinearLayout型別的,所以,LayoutParams的型別為LinearLayout的。如下程式碼所示:
rLayout_video=(RelativeLayout) findViewById(R.id.rlayout_video); LinearLayout.LayoutParams params_1= (LinearLayout.LayoutParams) rLayout_video.getLayoutParams(); params_1.height=screenHeight/3; rLayout_video.setLayoutParams(params_1);