проблема размера студии андроида - PullRequest
0 голосов
/ 01 октября 2019

У меня есть кнопки в моей деятельности, они имеют правильный размер в редакторе, но когда я устанавливаю свое приложение на моем устройстве, размеры не соответствуют действительности.

Снимки экрана

Editor

one

Device

two

Код

xml file

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/bg2"
        tools:context=".MainActivity">

    <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
            app:titleTextColor="@color/White" />

    <LinearLayout
            android:id="@+id/itemButtons"
            android:layout_width="match_parent"
            android:layout_height="326dp"
            android:layout_alignTop="@+id/toolbar"
            android:layout_alignBottom="@+id/adView"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="60dp"
            android:layout_marginBottom="405dp"
            android:gravity="center"
            android:orientation="vertical">

        <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="15dp"
                android:layout_marginEnd="4sp"
                android:gravity="center"
                android:orientation="horizontal"
                android:weightSum="2">

            <Button
                    android:id="@+id/button"
                    android:layout_width="151dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginEnd="4dp"
                    android:background="#76FF03"
                    android:text="@string/alphabetButton"
                    android:textColor="#000000" />

            <Button
                    android:id="@+id/button2"
                    android:layout_width="151dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:background="#2196F3"
                    android:text="@string/numberButton"
                    android:textColor="#000000" />

        </LinearLayout>


        <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="15dp"
                android:layout_marginTop="7dp"
                android:layout_marginEnd="4sp"
                android:gravity="center"
                android:orientation="horizontal"
                android:weightSum="2">

            <Button
                    android:id="@+id/button3"
                    android:layout_width="151dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginEnd="4dp"
                    android:background="#651FFF"
                    android:text="@string/colorsButton"
                    android:textColor="#000000" />

            <Button
                    android:id="@+id/button4"
                    android:layout_width="151dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:background="#FFEA00"
                    android:text="@string/shapes"
                    android:textColor="#000000" />

        </LinearLayout>

        <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="15dp"
                android:layout_marginTop="7dp"
                android:layout_marginEnd="4sp"
                android:gravity="center"
                android:orientation="horizontal"
                android:weightSum="2">

            <Button
                    android:id="@+id/button5"
                    android:layout_width="151dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginEnd="4dp"
                    android:background="#FF5252"
                    android:text="@string/bodyParts"
                    android:textColor="#000000" />

            <Button
                    android:id="@+id/button6"
                    android:layout_width="151dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:background="#C6FF00"
                    android:text="@string/furnitures"
                    android:textColor="#000000" />

        </LinearLayout>

        <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="15dp"
                android:layout_marginTop="7dp"
                android:layout_marginEnd="4sp"
                android:gravity="center"
                android:orientation="horizontal"
                android:weightSum="2">

            <Button
                    android:id="@+id/button7"
                    android:layout_width="151dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:background="#1DE9B6"
                    android:text="@string/cityParts"
                    android:textColor="#000000" />


        </LinearLayout>

    </LinearLayout>


</RelativeLayout>

Есть идеи?

Ответы [ 3 ]

1 голос
/ 01 октября 2019

Решение 1 Вы можете добиться этого, предоставив маржу для вашей основной LinearLayout, как показано ниже, добавьте android:layout_marginStart="30dp" и android:layout_marginEnd="30dp" и установите значения в соответствии с вашими потребностями

 <LinearLayout
        android:id="@+id/itemButtons"
        android:layout_width="match_parent"
        android:layout_height="326dp"
        android:layout_alignTop="@+id/toolbar"
        android:layout_alignBottom="@+id/adView"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="60dp"
        android:layout_marginBottom="405dp"
        android:gravity="center"
        android:layout_marginStart="30dp" //margin start
        android:layout_marginEnd="30dp" //margin end change value as your need
        android:orientation="vertical">

        ...

     </LinearLayout>

Решение 2 для того, чтобы сделать отзывчивым ваше требование, вы можете использовать android:weightSum="1", как показано ниже.

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity"
        >
         <androidx.appcompat.widget.Toolbar
            />

      <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/bg2"
            android:layout_gravity="center"
            android:gravity="center"
            android:weightSum="1">
            <LinearLayout

                android:id="@+id/itemButtons"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight=".8"
                android:gravity="center"
                android:orientation="vertical">
             .... 
                 </LinearLayout>
        </LinearLayout>
1 голос
/ 01 октября 2019

Вы задаете фиксированные размеры для кнопок, задаете вес для кнопок и устанавливаете ширину равной нулю, это будет реагировать

<Button
    android:id="@+id/button7"
    android:layout_width="0dp"
    android:layout_weight="1"/>
0 голосов
/ 06 октября 2019

На мой взгляд, вы даете первые три строки в ширину кнопки = "0dp" и даете вес = "1". Кнопка делится на 2 части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...