2017-08-31 118 views
0

隨高度增加視圖我想添加視圖以100%的寬度和X%(例如:讓它40%作出)到父視圖機器人,在百分比

我有此:

private RelativeLayout getParentView(){ 
    return (RelativeLayout) MyActivity.this.getWindow().getDecorView().getRootView(); 
} 

我應該將父視圖轉換爲LinearLayout或RelativeLayout可以實現這一目標嗎?

以及如何以編程方式設置'myView'寬度和高度百分比?

感謝

+1

據我所知,你能做的只有用linearlayouts和重量。將weight-sum設置爲1並將子視圖的高度/寬度設置爲0.x百分比 – Zoe

+0

我不想在XML中以編程方式執行此操作, – Mars

+0

首先,我應該向父視圖添加線性佈局?然後添加myView到LinearLayout? – Mars

回答

3

您可以通過簡單地獲取屏幕寬度

public static int getScreenWidth(Context context) { 
    DisplayMetrics displayMetrics = new DisplayMetrics(); 
    ((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 
    return displayMetrics.widthPixels; 
} 

將其乘以百分比,給觀看這樣的參數做到這一點:

//For 40% height according to the screen width. 
view.getLayoutParams().height = (int) (getScreenWidth(mContext) * 0.40); 

希望這有助於。

+0

你想說getScreen * Height *? – Mars

+0

您可以通過兩種方式計算。假設我想將我的屏幕分成2個相等的部分,然後我將使用返回的displayMetrics.heightPixels並給出高度* 0.5。上面的代碼用於在不同寬度的設備出現時保持視圖的高寬比,並且您希望具有相同高寬比的視圖。 –

0
private static void updateDimen(Activity activity){ 
    DisplayMetrics displayMetrics = new DisplayMetrics(); 
    activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 
    screenHeight = displayMetrics.heightPixels; 
    screenWidth = displayMetrics.widthPixels; 
} 

使用上述代碼獲取屏幕高度和屏幕寬度。

然後讓你的佈局的情況下,獲得其的LayoutParams實例,並更新尺寸

params.height = screenHeight * 0.6; 
params.width = screenWidth * 0.6;