Управление видео по умолчанию в нижней части устройства - PullRequest
3 голосов
/ 22 октября 2011

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

<?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="320dip"
        android:layout_height="240dip">
    </VideoView>
    <WebView 
        android:id="@+id/slideHolder"
        android:layout_width="320dip" 
        android:layout_height="240dip"
        android:layout_gravity="bottom">
     </WebView>
     <ListView 
        android:layout_height="wrap_content"  
        android:layout_width="match_parent"
        android:id="@+id/slideList"
        android:background="#000000">
     </ListView>
</FrameLayout>

Uploaded Image of phone

Кто-нибудь знает, могу ли я переместить элементы управления видео поверх видео?

Ответы [ 2 ]

3 голосов
/ 02 мая 2012

То, что вы хотите сделать, это установить привязку для элементов управления и убедиться, что привязка не занимает весь экран.Например, вот пример макета (неполный, но суть понятна):

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

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/preview_video_container_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
        <VideoView 
            android:id="@+id/preview_video_view" 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
        />
    </LinearLayout>
</LinearLayout>

Затем в своем коде при настройке медиа-контроллера вы сделаете следующее:

    mPreview = (VideoView) findViewById(R.id.preview_video_view);
    MediaController mediaController = new MediaController(this);
    mediaController.setAnchorView(mPreview);

Ключ в том, что внутренний линейный макет содержит обтекание по высоте, поэтому он не занимает весь экран.Это в конечном итоге показывает элементы управления прямо под видео.Если вы хотите сделать что-то еще более прикольное, например, иметь элементы управления поверх самого видео (а затем появиться / исчезнуть), то я считаю, что вам придется создавать свои собственные элементы управления и размещать их в виде видео.

0 голосов
/ 22 октября 2011

Вероятно, это связано с тем, что вы используете FrameLayout, и на дисплее недостаточно места для отображения всего.Есть ли причина, по которой вам нужно использовать точные спецификации пикселей для вашего размера?Вы должны всегда избегать этого, если это возможно, потому что в Android вы никогда не знаете, на каком экране будет работать ваше приложение.

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