Как настроить activity под диагональ экрана?

149
01 октября 2018, 10:20

У меня есть activity мне надо, чтобы оно настраивалось под диагональ экрана пользователя. Я писал активность под диагональ экрана своего телефона. А потом попробовал запустить приложение на другом телефоне и некоторые фрагменты там не поместились.

Код разметки:

<TextView
    android:id="@+id/textView"
    android:layout_width="142dp"
    android:layout_height="29dp"
    android:layout_marginBottom="68dp"
    android:layout_marginLeft="112dp"
    android:layout_marginRight="120dp"
    android:layout_marginStart="112dp"
    android:layout_marginTop="8dp"
    android:visibility="visible"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btt8" />
<ImageButton
    android:id="@+id/btt1"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginEnd="24dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:background="@drawable/buttons"
    app:layout_constraintEnd_toStartOf="@+id/btt2"
    app:layout_constraintHorizontal_bias="0.4"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
<ImageButton
    android:id="@+id/btt2"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginEnd="24dp"
    android:layout_marginTop="8dp"
    android:background="@drawable/buttons"
    app:layout_constraintEnd_toStartOf="@+id/btt3"
    app:layout_constraintTop_toTopOf="parent" />
<ImageButton
    android:id="@+id/btt4"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginEnd="24dp"
    android:layout_marginStart="8dp"
    android:background="@drawable/buttons"
    android:layout_marginTop="8dp"
    app:layout_constraintEnd_toStartOf="@+id/btt5"
    app:layout_constraintHorizontal_bias="0.285"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btt1" />
<ImageButton
    android:id="@+id/btt5"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginEnd="24dp"
    android:layout_marginTop="8dp"
    android:background="@drawable/buttons"
    app:layout_constraintEnd_toStartOf="@+id/btt6"
    app:layout_constraintTop_toBottomOf="@+id/btt2" />
<ImageButton
    android:id="@+id/btt6"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginEnd="16dp"
    android:layout_marginTop="8dp"
    android:background="@drawable/buttons"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btt3" />
<ImageButton
    android:id="@+id/btt3"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginEnd="16dp"
    android:layout_marginTop="8dp"
    android:background="@drawable/buttons"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
<ImageButton
    android:id="@+id/bt7"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginEnd="24dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:background="@drawable/buttons"
    app:layout_constraintEnd_toStartOf="@+id/btt8"
    app:layout_constraintHorizontal_bias="0.285"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btt4" />
<ImageButton
    android:id="@+id/btt8"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginEnd="24dp"
    android:layout_marginTop="8dp"
    android:background="@drawable/buttons"
    app:layout_constraintEnd_toStartOf="@+id/btt9"
    app:layout_constraintTop_toBottomOf="@+id/btt5" />
<ImageButton
    android:id="@+id/btt9"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginEnd="16dp"
    android:layout_marginTop="8dp"
    android:background="@drawable/buttons"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btt6" />
<Button
    android:id="@+id/button10"
    android:layout_width="116dp"
    android:layout_height="38dp"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="16dp"
    android:layout_marginTop="8dp"
    android:text="Back"
    android:background="@drawable/field"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btt9"
    app:layout_constraintVertical_bias="0.957" />
<Button
    android:id="@+id/button11"
    android:layout_width="113dp"
    android:layout_height="38dp"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="16dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="16dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:text="Restart"
    android:background="@drawable/field"
    android:visibility="invisible"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.497"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btt8"
    app:layout_constraintVertical_bias="0.957" />
<Button
    android:id="@+id/button14"
    android:layout_width="113dp"
    android:layout_height="38dp"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="16dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="16dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:text="Main Menu"
    android:background="@drawable/field"
    android:visibility="invisible"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/bt7"
    app:layout_constraintVertical_bias="0.956" />

Answer 1

Элементы экрана надо запаковывать в контейнеры. В данный момент LinerLayout с вертикальной ориентацией, в котором будет три LinerLayout с горизонтальной ориентацией, по три ImageButton. Четвертым элементом там будет текст.

 <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
       android:gravity="center_horizontal">
       <ImageButton
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:layout_margin="8dp"/>
       <ImageButton
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:layout_margin="8dp"/>
       <ImageButton
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:layout_margin="8dp"/>
   </LinearLayout>
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
       android:gravity="center_horizontal">
       <ImageButton
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:layout_margin="8dp"/>
       <ImageButton
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:layout_margin="8dp"/>
       <ImageButton
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:layout_margin="8dp"/>
   </LinearLayout>
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
       android:gravity="center_horizontal">
       <ImageButton
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:layout_margin="8dp"/>
       <ImageButton
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:layout_margin="8dp"/>
       <ImageButton
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:layout_margin="8dp"/>
   </LinearLayout>
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="TEXT"
           android:layout_gravity="center"/>

Вне этого контейнера создаем еще один LinerLayout и привязываем его к низу. В нем будет три кнопки.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
</LinearLayout>

Не забываем параметры gravity и weigth, которые указывают поведение элемента в контейнере. Так же основной контейнер разметки тут RelativeLayout, можно и с вашим, но мне так проще. Вот здесь хорошо объясняется про поведение компонентов экрана. http://developer.alexanderklimov.ru/android/views/

READ ALSO
Почему обновляются данные во всех Map

Почему обновляются данные во всех Map

Не могу понять, каким образом у меня обновляются данные во всех трех мапах?

181
Где найти jar для support-v4

Где найти jar для support-v4

В Intellij Idea 20182 в android-проекте в коде объявлена переменная типа android

136
Процессор в Spring Batch - Java EE

Процессор в Spring Batch - Java EE

у меня есть структура в Spring Batch1

169
Можно ли над методом рест-контроллера ставить аннотацию @Transactional?

Можно ли над методом рест-контроллера ставить аннотацию @Transactional?

Можно ли над методом рест-контроллера ставить аннотацию @Transactional? Будут ли проблемы, если одновременно по этому URL одновременно будут пытаться...

177