1

にと一緒にTextViewがVideoViewありRelative layoutます。私がやっていることは、TextViewを画面の中央にアニメーション化し、テキストを変更して画面の隅に戻すことです。画面の中央にビデオビューを配置しています。TextViewがアニメーション化すると、ビデオビューの背後に移動してアニメーションが台無しになります。ビデオビューの上に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>

テキストビューで翻訳アニメーションを使用していますが、ビデオビューの上でアニメーションを作成したいと思います。

4

3 に答える 3

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の上で画面全体から中央に正しく変換されます。

于 2013-03-26T10:05:32.907 に答える
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>
于 2013-03-26T07:21:44.247 に答える
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);
        }
于 2013-03-26T13:36:41.487 に答える