2013-09-06 3 views
2

У меня есть макет ниже, где у меня есть линейная компоновка с гравитацией как центр, чтобы выровнять центр по центру. Я хочу добавить веб-просмотр программно и загрузить видео в YouTube. Проблема заключается в высоте веб-просмотра и ширина - wrap_content, wrap_content.So в портретном режиме веб-просмотр работает отлично и выравнивается в центре, но когда изменение ориентации на пейзажный веб-просмотр становится fill_parent и покрывает экран по горизонтали, поэтому контент не смотрит в центр. here is the layout fileПроблема с изменением ориентации WebView

и here the activity code

Ниже изображение, которое показывает результат в портретном режиме, который хорошо. Линейная планировка в зеленом цвете и WebView в синий цвет

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

enter image description here

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

ответ

1

При загрузке видео в WebView, так ALIGMENT в WebView является HTML задачей. Итоговое видео в <div> и добавить соответствующий стиль (в файле css или style атрибута в теге):

<div style="margin:0 auto;width:500px;"> 
    //your video object is placed here 
</div> 

Как вы можете играть видео в VideoView, но это техник будет немного больше сложно. Вкратце, вы должны добавить FrameLayout над WebView, получить координаты, где VideoView должен быть размещен через html-файл, и применить LayoutParams с помощью коордов для VideoView. Если ориентация будет изменена, VideoView должен быть обновлен новыми коордами. Если вы заинтересованы в этом, я могу поделиться более подробной информацией.

+0

Да, вы правы. Вот как я смог это сделать. – anshul

0

Почему нет wrap_content для ширины в плане ландшафта, а затем установить layout_gravity на "center"?

+0

Вы хотите, чтобы я создал отдельный макет для ландшафтного режима? – anshul

+0

Я думал, это то, что вы уже делали, но если нет, то да. – dcow

+0

Другим решением является простое задание плотности размещения в WebView для центра, поскольку вы добавляете его в линейную компоновку. – dcow

0

Попробуйте

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    android:gravity="center" > 
<LinearLayout 
    android:id="@+id/webViewPlaceholder" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="#00AC0F" 
    > 
</LinearLayout> 

+0

Tried.Not working :( – anshul

+0

Вам нужен андроид: layout_gravity = «center» во втором линейном макете. – dcow

Смежные вопросы