Как мне установить макет (ширина, высота) для телевизора? - PullRequest
1 голос
/ 22 марта 2012

Я создаю приложение, которое работает на logitech revue.Пользовательский интерфейс отображается на экране телевизора.

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

Как настроить:

  • android: layout_width
  • android: layout_height

, чтобы он умещался на экране независимо от того,размер?fill-parent и wrap_content, похоже, не решают эту проблему.

Можете ли вы направить меня к некоторым ресурсам, если это возможно, или привести пример?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <GridView
        android:id="@+id/propGridView"
        android:layout_width="619dp"
        android:layout_height="487dp"
        android:layout_gravity="center_vertical"
        android:numColumns="5"
        android:paddingTop="20dp" >
    </GridView>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="380dp"
        android:layout_height="508dp"
        android:layout_gravity="center"
        android:orientation="vertical" >

        <FrameLayout
            android:id="@+id/frameLayout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center" >

            <ImageView
                android:id="@+id/propertyThumbnail"
                android:layout_width="match_parent"
                android:layout_height="280dp"
                android:layout_weight="0.10"
                android:paddingTop="20dp"
                android:src="@drawable/wow" />
        </FrameLayout>

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:paddingTop="5dp"
            android:text="Title"
            android:textSize="20dp" />

        <TextView
            android:id="@+id/description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="Description"
            android:textSize="10dp" />
    </LinearLayout>

</LinearLayout>

Ответы [ 2 ]

2 голосов
/ 22 марта 2012

Установка фиксированных значений может привести к проблемам в ваших взглядах.Ex.если у вас один вид с шириной 200dip, а другой - 400dip, а поддерживаемая ширина экрана - 500dip, у вас на экране будут обрезаны объекты.

Посмотрите, как использовать веса для вашей ширины.Если вы предоставляете один вид с весом 0,6, а другой как 0,4, 1-й вид займет 60% экрана, а остальные 40%.Это не позволит вам оттолкнуть другие виды экрана.

Я изменил ваш XML, чтобы проиллюстрировать его использование

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <GridView
        android:id="@+id/propGridView"
        android:layout_width="0dip"
        android:layout_weight=".6"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:numColumns="5"
        android:paddingTop="20dp" >
    </GridView>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="0dip"
        android:layout_weight=".4"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/propertyThumbnail"
            android:layout_width="match_parent"
            android:layout_height="280dp"
            android:layout_weight="0.10"
            android:paddingTop="20dp"
            android:src="@drawable/icon" />

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:paddingTop="5dp"
            android:text="Title"
            android:textSize="20dp" />

        <TextView
            android:id="@+id/description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="Description"
            android:textSize="10dp" />
    </LinearLayout>

</LinearLayout>

Я удалил FrameLayout, который у вас был, поскольку он был практически бесполезен

0 голосов
/ 22 марта 2012

Это должно сработать:

android:layout_width="MATCH_PARENT"
android:layout_height="MATCH_PARENT"

Перепроверьте ваш полный макет для просмотра родительских элементов, у которых для параметров макета установлено значение "WRAP_CONTENT". Это испортит ваш макет.

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