1

Здесь я пытаюсь создать пользовательский интерфейс для Android-приложения. У меня есть несколько кнопок и логотип наверху. при разработке приложения я обнаружил, что пустое место в нижней части кнопок. Я хочу использовать это пространство, чтобы все кнопки были правильно выровнены внутри пустой области. Кнопки расположены ниже от логотипа до кнопки экрана устройства.Установите элемент управления Button, чтобы он поместился на экране независимо от разрешения экрана устройства.

enter image description here Я сделал этот код

Main.axml

<?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:orientation="vertical" 
    android:background="#0B95BA" 
    android:id="@+id/relativeLayout_container"> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="87.5dp" 
     android:layout_alignParentTop="true" 
     android:scaleType="fitXY" 
     android:gravity="center" 
     android:paddingLeft="10dp" 
     android:src="@drawable/LogoHere" 
     android:id="@+id/imgLogoHere" 
     android:layout_marginBottom="0.0dp" 
     android:layout_marginLeft="0.0dp" /> 
    <ScrollView 
     android:id="@+id/scrollView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/bottom_container" 
     android:layout_below="@id/imgLogoHere" 
     android:fillViewport="false" 
     android:orientation="vertical" 
     android:padding="10dp"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:layout_below="@id/scrollView"> 
      <Button 
       android:id="@+id/btnVisit" 
       android:layout_width="fill_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:layout_marginLeft="20dp" 
       android:layout_marginRight="20dp" 
       android:textSize="15sp" 
       android:textColor="#FFFFFF" 
       android:background="@drawable/ButtonStyle" 
       android:text="Visit" 
       android:layout_marginTop="5dp" /> 
      <Button 
       android:text="Our" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:layout_marginLeft="20dp" 
       android:layout_marginRight="20dp" 
       android:textSize="15sp" 
       android:textColor="#FFFFFF" 
       android:background="@drawable/ButtonStyle" 
       android:id="@+id/btnOur" 
       android:layout_marginTop="5dp" /> 
      <Button 
       android:text="Ours" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:layout_marginLeft="20dp" 
       android:layout_marginRight="20dp" 
       android:textSize="15sp" 
       android:textColor="#FFFFFF" 
       android:background="@drawable/ButtonStyle" 
       android:id="@+id/btnOurs" 
       android:layout_marginTop="5dp" /> 
      <Button 
       android:text=" Contact Us" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:layout_marginLeft="20dp" 
       android:layout_marginRight="20dp" 
       android:textSize="15sp" 
       android:textColor="#FFFFFF" 
       android:background="@drawable/ButtonStyle" 
       android:id="@+id/btnContactUs" 
       android:layout_marginTop="5dp" /> 
      <Button 
       android:text="Test" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:id="@+id/btnTest" 
       android:layout_marginLeft="20dp" 
       android:layout_marginRight="20dp" 
       android:textSize="15sp" 
       android:textColor="#FFFFFF" 
       android:background="@drawable/ButtonStyle" 
       android:layout_marginTop="5dp" /> 
      <Button 
       android:id="@+id/btnView" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:layout_marginLeft="20dp" 
       android:layout_marginRight="20dp" 
       android:textSize="15sp" 
       android:textColor="#FFFFFF" 
       android:background="@drawable/ButtonStyle" 
       android:text="View" 
       android:layout_marginTop="5dp" /> 
      <Button 
       android:id="@+id/btnOrderEntry" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:layout_marginLeft="20dp" 
       android:layout_marginRight="20dp" 
       android:textSize="15sp" 
       android:textColor="#FFFFFF" 
       android:background="@drawable/ButtonStyle" 
       android:text="Order Entry" 
       android:layout_marginTop="5dp" /> 
      <Button 
       android:id="@+id/btnIntranet" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:layout_marginLeft="20dp" 
       android:layout_marginRight="20dp" 
       android:textSize="15sp" 
       android:textColor="#FFFFFF" 
       android:background="@drawable/ButtonStyle" 
       android:text="Intranet" 
       android:layout_marginTop="5dp" /> 
     </LinearLayout> 
    </ScrollView> 
    <LinearLayout 
     android:id="@+id/bottom_container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:orientation="horizontal" /> 
</RelativeLayout> 

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

Или, пожалуйста, предложите мне любую вещь, которая может загружать пользовательский интерфейс на экране и соответствовать динамически, независимо от разрешения устройства.

Спасибо advanace

+1

дать преимущество каждой кнопке, и она будет покрывать нижнее пространство –

ответ

1

изменение

android:fillViewport="false" 

в

android:fillViewport="true" 

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

scrollview

+0

спасибо за ответ .... – Pritish

2

Добавить android:layout_margin="10dp"илиandroid:layout_margin="12dp"

Для каждого Button.

См. Это.

<Button 
     android:id="@+id/btnIntranet" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:layout_marginTop="5dp" 
     android:layout_weight="1" 
     android:layout_margin="10dp" 
     android:background="@mipmap/ic_launcher" 
     android:text="Intranet" 
     android:textColor="#FFFFFF" 
     android:textSize="15sp" /> 

Сделайте то же самое для всех в Buttons.

+0

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

+1

@MartinP Вы использовали 'Scroll View' в своем' Layout', поэтому у него не будет проблем с работой с любым пользователем разрешения, которое можно прокручивать и просматривать. –

+0

Одна вещь, которую я хотел бы спросить Как я могу увеличить размер кнопки, значит, вы можете видеть, что высота кнопки изображения настолько мала на устройстве, что ее трудно читать текст, как я могу ее увеличить. – Pritish

1

Поскольку макет очень линейна, то лучше использовать LinearLayout в качестве корневого тега.

<LinearLayout 
    android:orientation="vertical" 
    other attributes here...> 

</LinearLayout> 

Это означает, что вы можете удалить все относительное расположение связанные вещи его дети, такие, как layout_below.

Добавьте weight к вашему изображению и установите его в 2 или любое другое число, которое выглядит хорошо. И, конечно, установите его высоту на 0dp.

Добавить вес в список прокрутки. Я думаю, что все будет хорошо. Также установите высоту на 0dp

Измените высоту линейного макета (тот, который находится в режиме прокрутки!) До match_parent.

Я думаю, что должен это сделать.

1

Вы можете управлять своими свойствами макета виджетов из вашего java-кода для разных разрешений экрана.

DisplayMetrics displayMetrics = getActivity().getApplicationContext().getResources().getDisplayMetrics(); 

float screenHeight = displayMetrics.heightPixels/displayMetrics.density; 
float requiredHeight = (screenHeight * 1)/8; 
final float scale = context.getResources().getDisplayMetrics().density; 
int buttonHeight = (int) ((int) requiredHeight * scale + 0.5f); 
buttonName.setHeight(buttonHeight); 

Установить высоту собственности для всех ваших кнопок.

Смежные вопросы