You can register when changing the appearance by adding a layout observer.
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);
}
}
...
source
share