使用VItamio播放器推动android视图(动作栏等)

时间:2014-04-03 11:33:01

标签: android vitamio

在我的一项活动中使用Vitamio玩家后,我遇到了一个奇怪的错误。当vitamio的媒体控制器出现时屏幕被推高,这导致我的动作栏被裁剪了一半。

这是媒体控制器出现之前的屏幕截图(正常):

enter image description here

这是媒体控制器出现的时候(见我的操作栏):

enter image description here

这是我的布局XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MatchDetailActivity" >

    <LinearLayout
        android:id="@+id/wrapperVideo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <io.vov.vitamio.widget.CenterLayout
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:orientation="vertical" >

            <io.vov.vitamio.widget.VideoView
                android:id="@+id/buffer"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true" />

            <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:orientation="horizontal" >

            <ProgressBar
                android:id="@+id/probar"
                style="?android:attr/progressBarStyleLarge"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <!--
             <TextView
            android:id="@+id/download_rate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="" 
            android:visibility="gone"/>

            -->

            <TextView
                android:id="@+id/load_rate"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text=""
                android:visibility="gone" />

            <ImageButton
                android:id="@+id/btnPlay"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/ic_drawer"
                android:visibility="gone" />

            <ImageButton
                android:id="@+id/btnPause"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/ic_home"
                android:visibility="gone" />
        </LinearLayout>
        </io.vov.vitamio.widget.CenterLayout>



        <!--
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/imgFull"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher"
            android:visibility="gone" />
    </LinearLayout>

        -->

    </LinearLayout>

    <LinearLayout 
        android:id="@+id/wrapperPager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/darker_gray"
            android:orientation="horizontal"
            android:paddingBottom="10dp"
            android:paddingTop="10dp" >

            <TextView
                android:id="@+id/events"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:text="EVENTS" />

            <TextView
                android:id="@+id/lineups"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:text="LINEUPS" />

            <TextView
                android:id="@+id/statistics"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:text="STATISTICS" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/darker_gray"
            android:gravity="center"
            android:orientation="horizontal"
            android:paddingBottom="10dp"
            android:paddingTop="10dp" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <TextView
                        android:id="@+id/txtTeam1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="5dp"
                        android:text="Team 1" />

                    <ImageView
                        android:id="@+id/imageTeam1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:src="@drawable/ic_launcher" />
                </LinearLayout>

                <TextView
                    android:id="@+id/txtScore1"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:gravity="center"
                    android:text="0"
                    android:textSize="48sp" />

                <TextView
                    android:id="@+id/separator"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:gravity="center"
                    android:text=":"
                    android:textSize="40sp" />

                <TextView
                    android:id="@+id/txtScore2"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:gravity="center"
                    android:text="0"
                    android:textSize="48sp" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <TextView
                        android:id="@+id/txtTeam2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="5dp"
                        android:text="Team 2" />

                    <ImageView
                        android:id="@+id/imageTeam2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:src="@drawable/ic_launcher" />
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <android.support.v4.view.ViewPager
                android:id="@+id/detailPager"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/ads" >
            </android.support.v4.view.ViewPager>

            <TextView
                android:id="@+id/ads"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:background="@android:color/darker_gray"
                android:gravity="center"
                android:padding="@dimen/activity_vertical_margin"
                android:text="ads" />
        </RelativeLayout>

    </LinearLayout>

</LinearLayout>

请帮助我,谢谢你的帮助.E

3 个答案:

答案 0 :(得分:2)

- 在此文件中找到此行io.vov.vitamio.widget.MediaController.java setWindowLayoutType(); - 然后评论

答案 1 :(得分:1)

我的应用程序也遇到了类似的问题。我将问题缩小到Vitamio MediaController中的setWindowLayoutType()方法。我做的是我在show()方法中注释掉方法setWindowLayoutType(),问题就此消失了。我仍在试图弄清楚为什么会这样,但同时希望它可以帮助你。

答案 2 :(得分:1)

你必须评论这一行setWindowLayoutType();的 这个功能节目,这个函数可以在这个文件中找到io.vov.vitamio.widget.MediaController.java ;此文件的网址:https://github.com/yixia/VitamioBundle/blob/master/vitamio/src/io/vov/vitamio/widget/MediaController.java

public void show(int timeout) {
    if (!mShowing && mAnchor != null && mAnchor.getWindowToken() != null) {
      if (mPauseButton != null)
        mPauseButton.requestFocus();

      if (mFromXml) {
        setVisibility(View.VISIBLE);
      } else {
        int[] location = new int[2];

        mAnchor.getLocationOnScreen(location);
        Rect anchorRect = new Rect(location[0], location[1], location[0] + mAnchor.getWidth(), location[1] + mAnchor.getHeight());

        mWindow.setAnimationStyle(mAnimStyle);
//comment this line below
        setWindowLayoutType();
        mWindow.showAtLocation(mAnchor, Gravity.NO_GRAVITY, anchorRect.left, anchorRect.bottom);
      }
      mShowing = true;
      if (mShownListener != null)
        mShownListener.onShown();
    }
    updatePausePlay();
    mHandler.sendEmptyMessage(SHOW_PROGRESS);

    if (timeout != 0) {
      mHandler.removeMessages(FADE_OUT);
      mHandler.sendMessageDelayed(mHandler.obtainMessage(FADE_OUT), timeout);
    }
  }