2010-11-30 5 views
12

У меня есть VideoView, который находится внутри scrollView. Когда я просматриваю scrollView, VideoView не прокручивает его. Это похоже на то, что его положение фиксировано. Как прокрутить VideoView правильно с помощью прокрутки всех других элементов в scrollView?Android :: VideoView внутри ScrollView

+1

Я также сталкиваюсь с той же проблемой. У кого-нибудь есть решение? – 2011-05-05 11:01:33

+0

Это, кажется, общая проблема. Я тоже ищу решение. Вот еще один вопрос на случай ответа на один из них: http://stackoverflow.com/questions/5896921/android-scrollview-having-videoview-is-giving-problem – 2011-05-24 16:59:54

+0

VideoView наследует от SurfaceView, который изменяет правила прокрутки поведение. SurfaceView - это в основном прокладка поверх всего, что происходит, и кажется, что вы сами по себе, насколько это касается обновлений. См. Также этот вопрос, если он вообще помогает: http://stackoverflow.com/questions/1096618/android-surfaceview-scrolling – 2011-06-22 03:39:57

ответ

11

Дисплея обычно делитесь на два трубопровод

  • буфера трубопровод кадров - это то, где отображаются все ваши графики. Все элементы отображения пользовательского интерфейса входят в эту линию трубопроводов
  • Конвейер видеобумаги. Здесь перенаправляются ваши видеоданные.

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

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

Так как сейчас вы не можете просмотреть видео в андроиде ..

7

сказал Romain Guy в этом Android issue:

Это известное ограничение VideoView. Вместо этого вы должны использовать TextureView в Android 4.0 и выше.

0

Вы можете разместить видеоизображение внутри макета с пустым представлением над ним.

<RelativeLayout 
     android:id="@+id/lay_live_video" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:visibility="visible" > 

     <VideoView 
      android:id="@+id/videoview" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" /> 

     <View 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@android:color/transparent" /> 
    </RelativeLayout> 

Этот код может быть внутри вашего прокрутки.

Извините за мой английский, я изучаю;)