Пожалуйста, поймите меня правильно здесь:
Я хочу получить высоту / ширину пространства, доступного для Activity / Layout, в методе onCreate (), чтобы вычислить высоту, которая может быть задана дочерним макетам. Я могу получить размер экрана, используя:
root = (LinearLayout) findViewById(R.id.mainroot); // Main layout of LinearLayout
android.view.Display display = getWindowManager().getDefaultDisplay();
int height = Display.getHeight(); // I know this is deprecated have hence used
int width = Display.getWidth(); // DisplayMetrics
int childWidth, childHeight;
DisplayMetrics metrics = new DisplayMetrics();
display.getMetrics(metrics);
//int density = metrics.densityDpi;
height = metrics.heightPixels; //480
width = metrics.widthPixels; //320
Это оба метода / способа дают мне одинаковую высоту и ширину, то есть размер полного экрана. То, что я ищу, - это получить фактическую высоту, которая может быть указана для макета, после вычета заголовка приложения, строки состояния и т. Д.
Есть идеи, как это получить. ИЛИ, чтобы получить размеры заголовков и т. Д. - что все должно быть посчитано здесь. На эмуляторе я вижу 2 столбца сверху - 1 должен быть титул приложения, как и другой. Я могу получить высоты их всех и вычесть из высоты экрана.
Еще один момент: в этом случае я буду устанавливать высоту программно, поэтому она будет основываться на пикселях (так как я могу устанавливать высоту только в пикселях), что повлияет на коэффициент плотности при разных размерах экрана. Что может быть способом для расчета высоты (скажем, 50%) для дочернего макета, который будет одинаковым для любой плотности, так что