Позиционирование 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
У меня есть решение для этого, добавьте вертикальную компоновку, затем поставьте видеоизображение в этом макете, медиа-контроллер появится в нижней части макета, где будет показано видео.