首次显示前获得屏幕高度?

时间:2009-12-03 14:12:52

标签: android android-listview

我有一个ListView。我用8个项目填充它,这些都垂直适合G1。我的一些用户说Droid的屏幕高度较高,因此我可以在ListView中添加一两个项目以占用额外的空间。

如何在UI显示之前测量屏幕在启动时提供的可用高度?如果我看到高度可以超过8个项目,我想再添加一两行。

2 个答案:

答案 0 :(得分:1)

我同意上面的评论,但如果你真的想走这条路,试试这个:

Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();

您可以从主要活动中执行此操作,即从启动器启动的活动。

但是,这并没有考虑通知栏或窗口装饰所占用的空间,所以实际上,你有空间而不是宽度乘以高度。

答案 1 :(得分:0)

以下是我最常用的代码:

public class MainActivity extends Activity {

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.????????);

    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    Constants.SCREEN_HEIGHT = dm.heightPixels;
    Constants.SCREEN_WIDTH = dm.widthPixels;
  }
}