我正在构建一个需要以编程方式添加布局的android应用。这行似乎让我很难受:

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


变量screenWidth和screenHeight是屏幕的宽度和高度,以像素为单位。该布局应该是父布局的宽度的25%,高度的94%。当我将参数添加到布局中,然后添加布局时,它将占用整个屏幕,而不是我提到的尺寸。

那么我是否正确使用此构造函数?任何帮助表示赞赏。感谢您的时间。

编辑:

我在onCreate()中得到screenWidth和screenHeight:

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


即使实际的高度(以像素为单位)为1280,变量screenHeight仍返回1184。变量screenWidth似乎很好。那么如何获得以像素为单位的实际屏幕高度?

最佳答案

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。

07-24 09:33