我正在开发一个项目,其中只有在播放MediaPlayer对象时才能看到ImageView元素。
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);
}
}
};
您需要处理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);
}
});
}
}
};