К сожалению, это жестко запрограммированное поведение в VideoView
:
...
if (mTargetState == STATE_PLAYING) {
start();
if (mMediaController != null) {
mMediaController.show();
}
...
В качестве обходного пути, оберните MediaController
в вашем собственном классе и подавьте начальный вызов show()
, например:
package pkg.your;
import android.content.Context;
import android.widget.MediaController;
public class MyMediaController extends MediaController {
private boolean suppressed = true;
public MyMediaController(Context context) {
super(context);
}
@Override
public void show(int timeout) {
if (! suppressed) {
super.show(timeout);
}
suppressed = false;
}
}
Затем просто подключите MyMediaController
выше, как обычно, например:
MyMediaController mc = mediaController = new MyMediaController(this);
mc.setAnchorView(videoView);
mc.setMediaPlayer(videoView);
videoView.setMediaController(mc);
....
Теперь элементы управления изначально скрыты, и они отображаются, как и ожидалось, когда пользователь касается экрана.