【问题标题】:I am trying to get the dimensions of the current screen space. I think it is the rootlayout dimensions我正在尝试获取当前屏幕空间的尺寸。我认为这是根布局尺寸
【发布时间】:2012-10-05 17:27:28
【问题描述】:

当你设计一些东西时,你必须从布局开始。

屏幕通常会包含:

 [         title bar                ]
 |----------------------------------|
 |                                  |
 |         layout/activity          |
 |                                  |
 |----------------------------------|
 [         menu bar                 ]

我删除了标题栏,但试图考虑菜单栏以获得布局或活动的宽度和高度。

我的事情是,因为我在创建时执行它,尺寸还没有弄清楚。当程序运行时,我可以使用 layout.getWidth()。我将如何获得适用工作空间的尺寸?如果我得到屏幕尺寸,它是全屏,我不想要那个......因为菜单栏被计算在内。

这是用于平板电脑的,我不能只删除菜单栏。有谁知道吗?

【问题讨论】:

  • 您可以随时发布(使用View.post() 方法)Runnable 在您的一个视图(例如您的布局的根)上,并且在Runnable 中,您保证拥有您可以使用的尺寸。
  • @Luksprog mmm,但作为一个线程,它什么时候结束?
  • 我不明白最后的评论。你在说什么话题?
  • 这个可运行的解决方案就是它的工作方式。
  • 发布答案并接受它,以便问题得到解答。

标签: java android xml android-layout


【解决方案1】:

当你有一个视图时,你可以使用 View.post() 它将像一个线程一样运行它(这就是为什么它被称为可运行的)。这样做的好处是,当您在根布局中实现它时,它会将内容发布到屏幕上。这样,您就可以获取正在寻找的资产,屏幕尺寸。

您没有获得屏幕尺寸的原因是基于您的程序的生命周期。 onCreate 没有在屏幕上呈现任何内容,因此无法知道运行中该点的内容尺寸。

onCreate() 中的示例代码:

LinearLayout ll = (LinearLayout)findViewById(R.id.LinearLayout);
ll.post(new Runnable(){
    public void run() {
        //get dimensions in here.   
    }
});

【讨论】:

    猜你喜欢
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    相关资源
    最近更新 更多