Как добиться этого макета на всех устройствах, кроме планшетов - PullRequest
0 голосов
/ 20 мая 2011

Я не беспокоюсь о планшетах на данный момент, только телефоны Android. У меня есть плата за LG телефон, который я использую для разработки. У меня есть макет кадра с VideoView и WebView в нем.

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

Мне было интересно, как я могу заполнить верхнюю половину экрана своим видео, а нижнюю - изображением. Я пробовал layout_width как match_parent, но тогда я не был уверен, как определить высоту. Вот макет, которого я хочу добиться на всех устройствах.

ss

и мой layout.xml

<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/mobile_vforum_bg"
    >
    <VideoView 
        android:id="@+id/vidPlayer"
        android:layout_width="320px"
        android:layout_height="240px">
    </VideoView>
    <WebView 
        android:id="@+id/slideHolder"
        android:layout_width="320px" 
        android:layout_height="240px"
        android:layout_gravity="bottom">
     </WebView>
</FrameLayout>

Очевидно, что я не могу использовать количество пикселей здесь, так каковы мои варианты? Спасибо, и я надеюсь, что мой вопрос был достаточно ясен.

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Используйте вертикальное линейное расположение и укажите layout_weight="1" для обоих видов.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/mobile_vforum_bg">
    <VideoView 
        android:id="@+id/vidPlayer"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    </VideoView>
    <WebView 
        android:id="@+id/slideHolder"
        android:layout_weight="1"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
     </WebView>
</LinearLayout>
1 голос
/ 20 мая 2011

Почему вы используете FrameLayout?Это предназначено для того, когда вы хотите наложить представления.В этом случае простой LinearLayout с ориентацией = "вертикаль" должен сделать свое дело.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/mobile_vforum_bg"
    >
    <VideoView 
        android:id="@+id/vidPlayer"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    </VideoView>
    <WebView 
        android:id="@+id/slideHolder"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
     </WebView>
</LinearLayout>
...