获取活动使用的屏幕区域的尺寸

时间:2013-07-31 09:06:42

标签: android android-activity

如何在onCreate期间确定活动的尺寸(宽度和高度)。尺寸不能是整个屏幕的尺寸,而只能是活动使用的区域尺寸。我尝试在SO上发布的一些方法最终都会给出设备的最大屏幕尺寸。

2 个答案:

答案 0 :(得分:0)

你有没有尝试过(不完全是onCreate):

activityRootView = findViewById(R.id.yourRootView);    
        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                   //activityRootView.getHeight();
                   //...
                }
             }
        });

当然,您的活动主要布局必须与父级或填充内容相匹配

答案 1 :(得分:0)

整个用户内容转到android.R.id.content,所以您可以做的是

final Rect rectgle = new Rect();
LinearLayout mContent = (LinearLayout)findViewById(android.R.id.content).getParent();
mContent.getWindowVisibleDisplayFrame(rectgle);
// and use
//rectgle.top;
//rectgle.left
//rectgle.right

这包括操作栏如果要排除操作栏也直接使用

//findViewById(android.R.id.content); 

返回FrameLayout