Позиционирование MediaController

Я использую VideoView, чтобы показать игру локальным mp4, и я также использую MediaController. Панель управления носителем не отображается под моим видеоклипом, а находится в середине экрана. Я использовал setAnchorView для присоединения к моему видеовизу, но это не повлияло. Как я могу расположить мой медиаконтроллер непосредственно под моим видеовидео?

public class VideoDemo extends Activity {
private VideoView video;
private MediaController ctlr;

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    getWindow().setFormat(PixelFormat.TRANSLUCENT);
    setContentView(R.layout.main);

    File clip=new File(Environment.getExternalStorageDirectory(),
                                         "test.mp4");

    if (clip.exists()) {
        video=(VideoView)findViewById(R.id.video);
        video.setVideoPath(clip.getAbsolutePath());

        ctlr=new MediaController(this, false);
        ctlr.setAnchorView(video);
        ctlr.setMediaPlayer(video);
        video.setMediaController(ctlr);
        video.requestFocus();
    }
}
}

и мой макет

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="400dp"
    android:layout_height="400dp"
    android:background="#fff"
    >
<VideoView 
     android:id="@+id/video" 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
</LinearLayout>

Ответ 1

Чтобы получить приложение планшета, чтобы отображать медиа-контроллер с полным экраном, а не посередине, вам нужно поместить строку -sdk uses в ваш AndroidManifest.xml и настроить версию sdk, которая знает о существовании более высокого в противном случае много просмотров ограничено 480x320

Изменить: ранее я писал о некоторых проблемах с добавлением uses-sdk, в результате чего перемотка назад/пауза/вперед показывалась без слайдера прогресса внизу, но получается, что на конкретном планшете, адаптированном для Android, меню /etc панель кнопок просто закрывала нижнюю половину медиа-контроллера.

Ответ 2

Try:

ctrl.setPadding(x, y, z, w)

Ответ 3

Можете ли вы попробовать это:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="400dp"
    android:layout_height="400dp"
    android:background="#fff"
    android:orientation="vertical" >

    <VideoView
        android:id="@+id/video"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

</LinearLayout>

Затем добавьте MediaController, используя в качестве параметров макета

  • layout_width: fill_parent
  • layout_height: wrap_content
  • layout_weight: 0

Надеюсь, это поможет!

Ответ 4

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