Intereting Posts
Пользовательские действия в приложении «Контакты» (аналогичные G +) Ошибка приложения Android – Дубликат id 0x7f04000f, тег null или родительский идентификатор 0x0 с другим фрагментом для com.google.android.gms.maps.SupportMapFragment Android SQCipher мне нужно закрыть базу данных? Почему? Почему? Что делать с курсором после SQLite-запроса? ActionBar.setNavigationMode (ActionBar.NAVIGATION_MODE_TABS) устарело Java.io.FileNotFoundException: /file/path.jpg open failed: ENOENT (Нет такого файла или каталога) Интерфейс настройки Libgdx дает 2 неожиданные ошибки в новом проекте GWT Режим контекстного действия, не связанный с фильтрацией Пример диспетчера аварий Что действительно означает Debug.getNativeHeapFreeSize SetTextSize (float) не поддерживается в удаленном TextView? Как включить GPS в Eclipse Emulator для Android Как град выбирает определенные URL-адреса для поиска репозитория? Как указать его в правильном направлении, чтобы я мог импортировать этот JAR? Советы по поддержке нескольких экранов в 2D-игре opengl?

Как настроить размер кнопок в соответствии с размером экрана в Android Studio

Я новичок в разработке Android, делаю калькулятор в студии Android. Мой калькулятор отлично работает, но есть проблема с его компоновкой, я устанавливаю его на свой планшет, и кнопка была маленькой, поскольку я проектирую их в adroid studio на эмуляторе, размер кнопки не изменяется, поэтому вам нужна помощь, чтобы размер кнопки увеличивался по мере изменения размера экрана

Мой калькулятор в Android Studio

Введите описание изображения здесь

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ff000000"> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/clear" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="110dp" android:background="@drawable/clear_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/plus_minus" android:layout_alignBottom="@+id/clear" android:layout_toRightOf="@+id/clear" android:layout_toEndOf="@+id/clear" android:layout_marginLeft="-11dp" android:background="@drawable/pm_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/per" android:layout_alignBottom="@+id/plus_minus" android:layout_toRightOf="@+id/plus_minus" android:layout_toEndOf="@+id/plus_minus" android:layout_marginLeft="-11dp" android:background="@drawable/per_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/div" android:layout_alignTop="@+id/per" android:layout_toRightOf="@+id/per" android:layout_toEndOf="@+id/per" android:layout_marginLeft="-11dp" android:background="@drawable/div_btn" android:layout_alignParentRight="false" /> <TextView android:layout_width="fill_parent" android:layout_height="70dp" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/disp" android:layout_above="@+id/plus_minus" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:textColor="@android:color/white" android:textSize="32sp" android:inputType="none" android:textStyle="normal" android:gravity="right" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/seven" android:layout_below="@+id/clear" android:layout_toLeftOf="@+id/plus_minus" android:layout_toStartOf="@+id/plus_minus" android:layout_marginTop="-10dp" android:layout_alignParentTop="false" android:layout_alignParentLeft="true" android:background="@drawable/seven_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/eight" android:layout_alignTop="@+id/seven" android:layout_alignLeft="@+id/plus_minus" android:layout_alignStart="@+id/plus_minus" android:background="@drawable/eight_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/nine" android:layout_alignBottom="@+id/seven" android:layout_alignLeft="@+id/per" android:layout_alignStart="@+id/per" android:background="@drawable/nine_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/mul" android:layout_alignTop="@+id/nine" android:layout_alignLeft="@+id/div" android:layout_alignStart="@+id/div" android:background="@drawable/mul_btn" /> <Button android:layout_width="103dp" android:layout_height="90dp" android:id="@+id/four" android:layout_below="@+id/seven" android:layout_alignRight="@+id/seven" android:layout_alignEnd="@+id/seven" android:layout_marginTop="-10dp" android:layout_alignParentLeft="false" android:background="@drawable/four_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/five" android:layout_alignBottom="@+id/four" android:layout_alignLeft="@+id/eight" android:layout_alignStart="@+id/eight" android:background="@drawable/five_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/six" android:layout_alignTop="@+id/five" android:layout_alignLeft="@+id/nine" android:layout_alignStart="@+id/nine" android:background="@drawable/six_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/sub" android:layout_toEndOf="@+id/nine" android:layout_alignTop="@+id/six" android:layout_alignLeft="@+id/mul" android:layout_alignStart="@+id/mul" android:background="@drawable/min_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/one" android:layout_below="@+id/four" android:layout_alignLeft="@+id/four" android:layout_alignStart="@+id/four" android:layout_marginTop="-10dp" android:layout_alignParentLeft="false" android:background="@drawable/one_btn" /> <Button android:layout_width="203dp" android:layout_height="90dp" android:id="@+id/zero" android:layout_below="@+id/one" android:layout_alignLeft="@+id/one" android:layout_alignStart="@+id/one" android:layout_marginTop="-10dp" android:background="@drawable/zero_btn" android:layout_alignParentLeft="true" android:layout_marginLeft="-7dp" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/two" android:layout_above="@+id/zero" android:layout_alignLeft="@+id/five" android:layout_alignStart="@+id/five" android:background="@drawable/two_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/three" android:layout_below="@+id/five" android:layout_alignLeft="@+id/six" android:layout_alignStart="@+id/six" android:layout_marginTop="-10dp" android:background="@drawable/three_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/add" android:layout_toEndOf="@+id/three" android:layout_below="@+id/six" android:layout_alignLeft="@+id/sub" android:layout_alignStart="@+id/sub" android:layout_marginTop="-10dp" android:background="@drawable/plus_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/dot" android:layout_below="@+id/two" android:layout_alignRight="@+id/three" android:layout_alignEnd="@+id/three" android:layout_marginTop="-10dp" android:background="@drawable/dot_btn" /> <Button android:layout_width="100dp" android:layout_height="90dp" android:id="@+id/equ" android:layout_toEndOf="@+id/dot" android:layout_below="@+id/three" android:layout_alignLeft="@+id/add" android:layout_alignStart="@+id/add" android:layout_marginTop="-10dp" android:background="@drawable/equ_btn" /> </RelativeLayout> 

Вы должны использовать layout_weight для достижения того, чего хотите, и это будет использоваться путем обертывания каждой строки кнопок внутри LinearLayout и всего, что LinearLayouts плюс TextView будет обернуто внутри одного большого LinearLayout вместо вашего RelativeLayout как LinearLayout ниже:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ff000000" android:orientation="vertical" android:weightSum="6" > <TextView android:id="@+id/disp" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:gravity="center" android:inputType="none" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="@android:color/white" android:textSize="32sp" android:textStyle="normal" /> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal" android:weightSum="4" > <Button android:id="@+id/clear" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="4" android:background="@drawable/clear_btn" /> <!-- then the three remaining buttons --> <LinearLayout /> <!-- then the four remaining rows --> <!-- in the last row the "0" button will have layout_weight="2" NOT "1" --> </LinearLayout> </LinearLayout> 

ОБНОВИТЬ:

Используйте ImageButtons вместо кнопок для лучшей масштабируемости, и именно так вы должны его использовать:

  <ImageButton android:id="@+id/clear" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="4" android:background="@android:color/transparent" android:src="@drawable/clear_btn" android:scaleType="fitCenter" /> <!-- and so for all Buttons --> 

Обратите внимание, что мы изменили:

1- layout_height : от wrap_content до match_parent .

2- background : удаление извлекаемого (clear_btn) и его transparent .

И мы добавили:

1- src : присвоение ему drawable (clear_btn).

2- scaleType : делает его fitCenter чтобы он масштабировался во всей доступной области, не fitCenter коэффициент масштабирования изображения.

PS : в случае, если вы хотите, чтобы кнопка взяла всю область погоды, она масштабируема или нет, измените scaleType из fitCenter в fitXY (возможно, вам понадобится эта кнопка « 0 »).

При установке высоты и ширины кнопки в андроиде с использованием значений пикселей фиксированной плотности будут отображаться точные размеры на всех экранах. Используя значения ширины как wrap_content , fill_parent , веса и т. Д., Кнопка будет выглядеть в соответствии с плотностью экрана.

Попробуйте воспользоваться этой ссылкой один раз: – Лучшие практики для пользовательского интерфейса

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

Вы можете проверить атрибут android:layout_weight и LinearLayout

Решение 1: используйте dimens.xml для указания и высоты для кнопок.

Для планшета создайте значения папки-sw600dp, values-sw720dp и поместите свой dimens.xml внутрь.

Решение 2:

 Use linearlayout and layout_weight property.