0

我目前有一个布局,在播放视频结束时,将全屏图像视图的可见性更改为可见。每当发生这种情况时,屏幕都会轻微闪烁。有没有办法防止这种情况?

public class VideoTestFlip extends SherlockActivity implements OnCompletionListener
{
ImageView surprise;
VideoView video;
ViewFlipper viewFlipper;
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.video_splash);
    video = (VideoView) findViewById(R.id.videoView);
    viewFlipper = (ViewFlipper)findViewById(R.id.viewflipper);
    Animation in = AnimationUtils.loadAnimation(this, R.anim.slide_down);
    Animation out = AnimationUtils.loadAnimation(this, R.anim.slide_up);

    viewFlipper.setInAnimation(in);
    viewFlipper.setOutAnimation(out);
    surprise = (ImageView)findViewById(R.id.surprise);
    video.setVideoPath("android.resource://com.mezzolab.danariely/raw/" + R.raw.splash_low_5);

 video.start();
    video.setOnCompletionListener(this);
}

@Override
public void onCompletion(MediaPlayer mp)
{

    surprise.setVisibility(View.VISIBLE);

    viewFlipper.showNext();
}
4

2 回答 2

3

我看不到您的代码,但很多时候这是因为您的事件序列已关闭。看一下这个

编辑:现在您的代码已经启动:您所做的似乎不应该有任何闪烁的行为。我唯一能想到的就是尝试将其设置为异步可见。制作一个处理程序:

private class ViewHandler extends Handler {
  @Override
  public void handleMessage(Message msg) {
    surprise.setVisibility(View.VISIBLE);
  }
}

然后ImageView View.VISIBLE通过调用处理程序来调用它:

mHandler.sendMessage(Message.obtain(mHandler, 0));
于 2013-04-18T18:45:22.257 回答
0

您可以使用动画来避免这种闪烁。

于 2013-04-18T18:42:47.647 回答