0

我正在开发一个项目,其中 ImageView 元素应该只在 MediaPlayer 对象播放时可见。

MediaPlayer 的状态可以随时更改。

连接这个的最好方法是什么?我考虑过在后台运行一个线程,但对于这么小的东西来说似乎有点沉重。

这是线程的当前代码,应用程序运行,但图像不显示。

Thread imageRender = new Thread() {
    @Override
    public void run() {
        if (mp.isPlaying() && img.getVisibility() == View.INVISIBLE) {
            img.setVisibility(View.VISIBLE);
        } else if (!mp.isPlaying() && img.getVisibility() == View.VISIBLE) {
            img.setVisibility(View.INVISIBLE);
        }
    }
};
4

1 回答 1

0

您需要在 UI 线程上处理更新 UI。简单的方法可以解决您的问题

    Thread imageRender = new Thread() {
        @Override
        public void run() {
            if (mp.isPlaying() && img.getVisibility() == View.INVISIBLE) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        img.setVisibility(View.VISIBLE);
                    }
                });
            } else if (!mp.isPlaying() && img.getVisibility() == View.VISIBLE) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        img.setVisibility(View.INVISIBLE);
                    }
                });

            }
        }
    };
于 2019-03-15T00:01:47.063 回答