Общий интерфейс для всех устройств, независимо от размера

Мое приложение отлично работает на телефоне, но когда я запускаю его на пользовательском интерфейсе TAB, оно становится слишком маленьким. Но я хочу, чтобы размер пользовательского интерфейса был относительно размера устройства. Нужно ли что-нибудь добавить в манифест. Что неправильно я делаю. Вот мой XML

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:orientation="vertical">

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Select The Game Level" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Level1" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="level2" />

<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="level3" />
 </LinearLayout>
Handset UI appearence

Внешний вид телефонного интерфейса

Tablet UI appearence

Внешний вид планшета

1 ответ

Решение

Давайте попробуем изучить ваши предположения здесь:

  1. Размер ваших кнопок установлен на "wrap_content". Это означает, что это зависит от размера текста, который он переносит.

  2. Вы хотите, чтобы ваши кнопки изменяли визуальный размер в зависимости от визуального размера экрана, на котором отображается ваше приложение.

  3. Therfore: вы ожидаете, что размер шрифта изменится в зависимости от экрана вашего устройства.

Я не чувствую, что это правильный подход к достижению того, что вы хотите. Здесь вам могут помочь несколько инструментов, давайте рассмотрим один из них: атрибут weight: что означает android: layout_weight?

Вот пример массива кнопок, которые выглядели бы визуально одинаково на любом экране (здесь акцент делается на "аналог". Но это то, чего вы пытаетесь достичь):

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/btnMainMenuTestUSB"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button1" />

        <Button
            android:id="@+id/btnMainMenuSetLocationNew"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button2" />
    </LinearLayout>

     <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/btnLineOfSight"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button3" />

               <Button
            android:id="@+id/btnTargetScreen"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button4" />
    </LinearLayout>
Другие вопросы по тегам