2

目前我正在使用以下设置高度和宽度:

//landsapeWebView is a WebView, and deviceHeight and deviceHeight are ints
landsapeWebView.setLayoutParams(new RelativeLayout.LayoutParams(deviceHeight, deviceWidth));

这似乎在某些设备上运行良好,但在其他设备上却不行。我得出的唯一结论是,这是像这样设置高度和宽度:

<WebView  android:layout_width="(deviceWidth)dp"
          android:layout_height="(deviceHeight)dp" />

当我想要的是:

<WebView  android:layout_width="(deviceWidth)px"
          android:layout_height="(deviceHeight)px" />

如何指定度量单位?


@collusionbdbh 的额外披露

    display      = getWindowManager().getDefaultDisplay();

    if(getResources().getConfiguration().orientation == 1){
        deviceWidth  = display.getWidth();
        deviceHeight = display.getHeight();
    }else{
        deviceWidth  = display.getHeight();
        deviceHeight = display.getWidth();
    }

在此处输入图像描述

4

2 回答 2

2

尝试这个:

DisplayMetrics metrics = this.getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
于 2012-10-11T01:18:44.030 回答
0

确定不是方向问题?

无论设备的方向如何,宽度都是水平的,高度是垂直的。

我会试试这个:

display      = getWindowManager().getDefaultDisplay();
    deviceWidth  = display.getWidth();
    deviceHeight = display.getHeight();

我很确定宽度应该在高度之前:

landsapeWebView.setLayoutParams(new RelativeLayout.LayoutParams(deviceHeight, deviceWidth));

应该:

landsapeWebView.setLayoutParams(new RelativeLayout.LayoutParams(deviceWidth, deviceHeight));
于 2012-10-11T01:05:15.547 回答