Я сделал это, используя мой корневой макет, проблема в том, что вы не можете получить эту информацию (ширину и высоту) в ваших методах onCreate / onStart / onResume, когда они запускаются в первый раз.
В любой момент после этого размер может быть получен из вашего корневого макета (LinearLayout / FrameLayout / TableLayout / и т. Д.), В моем случае я использовал FrameLayout:
FrameLayout f = (FrameLayout) findViewById(R.id.layout_root);
Log.d(TAG, "width " + f.getMeasuredWidth() );
Log.d(TAG, "height " + f.getMeasuredHeight() );
или:
FrameLayout f = (FrameLayout) findViewById(R.id.layout_root);
Log.d(TAG, "width " + f.getRight() );
Log.d(TAG, "height " + f.getBottom() );
Отредактировано отсюда --------------------------------------------------------
Я нашел способ получить эту информацию о методе onCreted, но только если вы выполняете более одного действия.В моем случае основной вид деятельности называется вторым.
На main_activity перед вызовом second_activity новым Itent я могу добавить дополнительную информацию для second_activity.Вот код, который вам нужен для первого занятия:
Intent i = new Intent(this, SecondActivity.class);
i.putExtra("width", f.getMeasuredWidth());
i.putExtra("height", f.getMeasuredHeight());
startActivity(i);
После этого для второго занятия вы можете получить эту информацию о методе onCreate вашего второго занятия, выполнив следующее:
int width = getIntent().getExtras().getInt("width");
int height = getIntent().getExtras().getInt("height");