如何在多窗口模式Android 7中获得窗口宽度?

时间:2017-08-01 06:23:49

标签: android size screen

自Android 7.0以来,我们有多种窗口模式。请参见此图中的示例:

enter image description here

用户可以更改窗口的宽度。

如何获得真正的窗口宽度?

2 个答案:

答案 0 :(得分:0)

您可以通过添加布局观察者来注册装饰视图更改。

public class MainActivity extends AppCompatActivity {

private ViewTreeObserver.OnGlobalLayoutListener layoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        Log.d("Main Activity", "" + getWindow().getDecorView().getHeight());
        Log.d("Main Activity", "" + getWindow().getDecorView().getWidth());
    }
};

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

    if (savedInstanceState == null) {
        getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(layoutListener);
    }
}

...

答案 1 :(得分:0)

为我工作:

Activity yourActivity = ...
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int windowWidth = displayMetrics.widthPixels;