1. 程式人生 > >android開發中如何通過程式碼設定控制元件的寬度和高度

android開發中如何通過程式碼設定控制元件的寬度和高度

原理:通過控制元件的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);