我在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上使用翻译动画,我想在视频视图上设置动画。
答案 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);
}