2011-02-14 104 views
0

在我的应用程序中,我有一个小型的SurfaceView显示相机预览。这个surfaceView放在一个放在ScrollView中的FrameLayout中,与其他组件(比如按钮,文本视图等)一起放置。问题是,当我滚动屏幕时,surfaceView留下一个黑洞,并且这个黑洞只在屏幕重绘时填充,所以,我想重画每个滚动步骤的屏幕(是如果没有其他办法,我愿意支付业绩折让)。有人有什么想法?当屏幕滚动时检测?

回答

1

扩展您的滚动视图,并把有

private OnScrollListener onScrollListener; 

    public interface OnScrollListener { 
     public void onScroll(); 
    } 

@Override 
    protected void onScrollChanged(int l, int t, int oldl, int oldt) { 
     if (onScrollListener != null) { 
      onScrollListener.onScroll(); 
     } 
     super.onScrollChanged(l, t, oldl, oldt); 
    } 

public void setOnScrollListener(OnScrollListener lst) { 
     this.onScrollListener = lst; 
    } 

,那么你可以听滚动

scrollRoot.setOnScrollListener(new OnScrollListener() { 
      @Override 
      public void onScroll() { 
       //do something 
      } 
     });