如何根据按钮点击隐藏和显示视图?
问题描述:
我有使用以下布局的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
并显示videoView
当点击btnPlay
?我还想做类似的工作,其中videoView
隐藏,点击btnCapture
时显示surfaceView
。
这是我如何隐藏和显示的看法:
surfaceView.setVisibility(View.GONE);
videoView.setVisibility(View.VISIBLE);
答
最简单的方法就是把两个surfaceView和videoView在不同的LinearLayout,然后用LinearLayout中setVisibility()背后的btnCapture点击播放。
也许是这样的:
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);
}
}
});
您需要向我们展示多一点你的代码,看看你在做什么。这就是你将如何显示一个'View'和'Gone'不会隐藏它,而是完全删除它以腾出空间给其他东西 – codeMagic 2013-03-15 23:03:19
我可能会从布局文件中删除'SurfaceView'和'VideoView'并且放入一个“FrameLayout”,然后在需要时在代码中创建“SurfaceView”或“VideoView”,并将它们放在“FrameLayout”中。 – Squonk 2013-03-15 23:23:50