Android视频查看可见性

时间:2013-03-26 06:47:43

标签: android android-videoview

我在VideoView中有一个TextView和Relative layout。我正在做的是,将TextView设置为屏幕中心的动画,更改文本并返回到屏幕的角落。我将视频视图放在屏幕中央。当TextView动画时,它会在视频视图后面破坏动画。我已经尽力找到任何解决方法,在Video View上显示TextView但不幸运。所以我想知道关于这个问题的任何帮助,或者我可以将动态事件的视频视图的可见性设置为false和true,这样我就可以实现我想要的。

这是我的相对布局代码

  <RelativeLayout
    android:layout_width="1440dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="0dp"
    android:background="#000000" >
  <VideoView
    android:id="@+id/videoView1"
    android:layout_width="962dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    />
  <TextView
    android:id="@+id/textView2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="970dp"
    android:layout_marginTop="320dp"
    android:paddingLeft="58dp"
    android:text="00"
    android:textAlignment="center"
    android:textSize="150sp"
    android:onClick="increaseCounter"
    android:clickable="true"
    android:textColor="#FF0000">
  <requestFocus
    android:duplicateParentState="true"
    android:focusable="true"
    android:focusableInTouchMode="true" />
  </TextView>
  </RelativeLayout>

我在textview上使用翻译动画,我想在视频视图上设置动画。

3 个答案:

答案 0 :(得分:1)

查看下面的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <VideoView
        android:id="@+id/videoView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="This is a sample text message"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

这是我试过的布局,下面是我用过的动画

 @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            .......
            textView.startAnimation(inFromRightAnimation());
            textView.requestFocus();
        }
        private Animation inFromRightAnimation() {

            Animation inFromRight = new TranslateAnimation(
                    Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f
            );
            inFromRight.setDuration(5*1000);
            inFromRight.setInterpolator(new AccelerateInterpolator());
            return inFromRight;
        }

它正常工作。 VideoView将位于TextView的后面,TextView正在从整个屏幕右上角正确地在VideoView上方进行翻译。

答案 1 :(得分:0)

尝试使用,它会在窗口顶部显示文本

<RelativeLayout
 android:layout_width="1440dp"
 android:layout_height="wrap_content"
 android:background="#000000" >
<TextView
 android:id="@+id/textView2"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:text="00"
 android:textAlignment="center"
 android:layout_alignParentTop="true"
 android:textSize="150sp"
 android:onClick="increaseCounter"
 android:clickable="true"
 android:textColor="#FF0000">
 <requestFocus
 android:duplicateParentState="true"
 android:focusable="true"
 android:focusableInTouchMode="true" />
 </TextView>
 <VideoView
 android:id="@+id/videoView1"
 android:layout_below="@+id/textView2"
 android:layout_width="962dp"
 android:layout_height="wrap_content"
 />
 </RelativeLayout>

答案 2 :(得分:0)

最后找到了我面临的问题的解决方法。创建了一个RelativeLayout,其中包含 z-index (在极端底部定义)并放置了我希望继续显示的所有控件,而动画除了videoView之外我实际想要在动画期间隐藏,并在视频视图顶部为textView设置动画。在动画开始时,我将最终的RelativeLayout背景设置为黑色,然后在动画结束时将其重置为透明。一种黑客,但工作。

    @Override
    public void onAnimationStart(Animation arg0) {

       RelativeLayout rl =(RelativeLayout) findViewById(R.id.superView);
    rl.setBackgroundColor(Color.BLACK);
        }

    @Override
    public void onAnimationEnd(Animation arg0) {

    RelativeLayout rl =(RelativeLayout) findViewById(R.id.superView);
    rl.setBackgroundColor(Color.TRANSPARENT);
        }