gpt4 book ai didi

android - 如何在特定时间设置 View 可见?

转载 作者:太空狗 更新时间:2023-10-29 14:03:40 25 4
gpt4 key购买 nike

我正在尝试制作一个视频播放器 android 应用程序,我必须在特定时间在视频顶部显示一个 ImageButton。这是我的布局

<FrameLayout
android:id="@+id/videoSurfaceContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<SurfaceView
android:id="@+id/videoSurface"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<LinearLayout
android:id="@+id/thumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:orientation="vertical"
android:visibility="gone" >

<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image" />

<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TEST TEST"
android:textColor="#FFFFFF" />
</LinearLayout>
</FrameLayout>

我有一个类型为 ThumbnailInfoArrayList,其中

public class ThumbnailInfo {
int time; //time in milliseconds
String body;


ThumbnailInfo(int time,String body){
this.time = time;
this.body = body;
}
}

所以现在我将时间存储在数组列表中,我想在特定时间之前 10 秒显示缩略图。

例如假设存储在 arraylist 中的时间是 00:40 、 01:30 、 04:50 (只是为了让问题清楚,时间以毫秒为单位存储)。因此,当我播放视频时,我必须在 00:30、01:20、04:40 将缩略图布局的可见性设置为 VISIBLE,并将在 00:41、01:31、04:51 设置可见性 GONE

所以我的问题是如何连续检查ArrayList中存储的时间并执行上述操作。

目前我拥有的是使用 mediaPlayer.getCurrentPosition();

的视频的当前位置

现在我必须不断地将视频的当前位置与存储在 ArrayList 中的时间进行比较。有没有任何观察者可以使任务变得容易或任何其他方法。

附言: 用户可以多次暂停视频。

欢迎任何帮助。提前致谢!!!

最佳答案

为了简单,你应该将时间从分钟转换为秒,从0开始。如:

  • VISIBLE at 00:30 , 01:20 , 04:40 => ArrayList< Visible > 值为 30, 80, 280

  • INVISIBLE at 00:41, 01:31 , 04:51 => ArrayList< Invisible > 值为 41, 61, 281

      int seconds = 0;
    CountDownTimer t = new CountDownTimer(Long.MAX_VALUE ,1000) { // interval 1s

    // This is called every interval. (Every 1 seconds in this example)
    public void onTick(long millisUntilFinished) {
    checkVisible(ArrayList visible);// make visible button
    checkInvisible(ArrayList invisible); // make invisible button
    seconds++:
    }
    public void onFinish() {
    System.out.println("finished");
    seconds = 0;
    }
    }.start();

记得打电话

  • t.cancel() 暂停视频时
  • t.finish() 视频播放结束
  • 重置seconds变量;

关于android - 如何在特定时间设置 View 可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34113854/

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