2015-09-05 62 views
1

我正在構建一個需要以編程方式添加布局的android應用程序。這是,這似乎是給了我一個艱難的時間線:Android - 我該做的對嗎?

RelativeLayout.LayoutParams rightScreenParams = new RelativeLayout.LayoutParams(
      (int) (screenWidth * 0.25), (int) (screenHeight * 0.94)); 

變量屏幕寬度和screenHeight在像素屏幕的寬度和高度。佈局應該是父佈局寬度的25%,高度的94%。當我將這些參數添加到佈局然後添加布局時,它將佔用整個屏幕而不是我提到的尺寸。

那麼我正確使用這個構造函數嗎?任何幫助表示讚賞。感謝您的時間。

編輯:

我得到屏幕寬度和screenHeight中的onCreate():

DisplayMetrics displayMetrics = new DisplayMetrics(); 
    WindowManager wm = (WindowManager) getApplicationContext() 
      .getSystemService(Context.WINDOW_SERVICE); 
    wm.getDefaultDisplay().getMetrics(displayMetrics); 
    screenWidth = displayMetrics.widthPixels; 
    screenHeight = displayMetrics.heightPixels 

變量screenHeight正在恢復爲1184,即使以像素爲單位的實際高度是1280變量屏幕寬度似乎是精細。那麼我怎麼才能得到像素的實際屏幕高度?

+0

您可以發佈代碼的其他位 - 即創建和添加布局嗎?另外你如何獲得screenWidth&height? –

+0

'screenWidth/4,screenHeight * 94/100'可能在某些情況下更快 –

+0

任何響應????? – Elltz

回答

0
RelativeLayout.LayoutParams rightScreenParams = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.Wrap_Parent,samehere); 
View.setLayoutParams(rightScreenParams);//your view 
//after you add it to the layout then you call 
rightScreenParams.width = (int) (screenWidth * 0.25); 
rightScreenParams.height = (int) (screenHeight * 0.94); 

其相同的東西,但它強制android。

+0

假設你打算在調用'setLayoutParams'之前改變**的值,對吧? –

+0

貌似**沒有**我的意思是每個字母都是_字母。如果它是我的所有我會做的是'View.getLayoutParams()。width = myWidth;' - (_振振有詞,因爲你使用大概:)_)lol @SanjayManohar – Elltz