0

我有一个Activity使用以下布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/btnCapture"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Start capture" />

    <Button
        android:id="@+id/btnPlay"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Play video" />

    <SurfaceView
        android:id="@+id/surfaceView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <VideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />    

</LinearLayout>

单击时如何隐藏surfaceView和显示?我也想做类似的事情,其中​​隐藏并在单击时显示。videoViewbtnPlayvideoViewsurfaceViewbtnCapture

这就是我隐藏和显示视图的方式:

surfaceView.setVisibility(View.GONE);

videoView.setVisibility(View.VISIBLE);
4

1 回答 1

0

最简单的方法是将surfaceView和videoView都放在不同的Linearlayout中,然后在btnCapture点击后用linearlayout setVisibility() 进行播放。

也许是这样的:

btnPlay.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) { 
if (surfaceView_linearlayout.getVisibility() == 0) {
    videoView_linearlayout.setVisibility(View.VISIBLE);
    surfaceView_linearlayout.setVisibility(View.GONE);
} 

}
});

btnCapture.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) { 
if (videoView_linearlayout.getVisibility() == 0) {
    surfaceView_linearlayout.setVisibility(View.VISIBLE);
    videoView_linearlayout.setVisibility(View.GONE);
    }

}
});
于 2013-10-23T15:24:49.580 回答