gpt4 book ai didi

android - 在 Android 的 VideoView 上显示和隐藏播放按钮

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:37 25 4
gpt4 key购买 nike

我希望能够显示一个开始播放视频的按钮,该按钮位于播放视频的同一 View (使用 VideoView)的中心位置。我还希望按钮在我单击后消失,因为我正在使用 MediaController 类在视频开始播放后执行暂停、倒回、快进操作。

我该怎么做?

这是我目前的布局:

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

<FrameLayout
android:id="@+id/video_frame"
android:layout_width="fill_parent"
android:layout_height="480px"
android:background="#000"
>

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

</FrameLayout>

我曾尝试以编程方式将 ImageButton 添加到 FrameLayout,但这似乎不起作用。

最佳答案

好的,这是我解决这个问题的方法。布局文件非常简单。只需在 VideoView 元素之后添加一个 ImageButton:

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

<FrameLayout
android:id="@+id/video_frame"
android:layout_width="fill_parent"
android:layout_height="480px"
android:background="#000"
>

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

<ImageButton
android:id="@+id/play_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:src="@drawable/ic_launcher"
/>

</FrameLayout>

FrameLayout View 元素按照您在布局中定义的顺序将其子元素层叠在一起。所以布局中添加的最后一个元素被绘制在顶部。请注意 ImageButton 具有此属性:

android:layout_gravity="center_vertical|center_horizontal"

此属性使 ImageButton 在 FrameLayout 中居中。

下一个技巧是让 ImageButton 在单击后消失。使用 ImageButton 上的 setVisibility() 方法来执行此操作:

    // Setup a play button to start the video
mPlayButton = (ImageButton) findViewById(R.id.play_button);
mPlayButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
if (mPlayer.isPlaying()) {
resetPlayer();
} else {
playVideo(videoUrl, mVideoView.getHolder());
// show the media controls
mController.show();
// hide button once playback starts
mPlayButton.setVisibility(View.GONE);
}
}
});

关于android - 在 Android 的 VideoView 上显示和隐藏播放按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15306087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com