适应滚动/滑动到电子墨水屏幕

时间:2012-02-22 08:56:13

标签: android

在电子墨水屏幕上滚动屏幕和动画是不好的事情。他们的快速屏幕刷新使屏幕闪烁(首先是负面,然后是黑色,然后是新内容,重复多次滚动)。

驯服电子墨水屏幕的一种简单方法是将滚动更改为分页。另一种方法是仍然进行滚动 - 但不显示中间屏幕更新: 滚动前的屏幕 - >抬起手指:滚动后更新到屏幕 滚动前的屏幕 - >离开手指+超时:更新到实际屏幕

  • 任何想法如何实现?
  • 有没有办法教授/覆盖现有的滚动码?

THX

1 个答案:

答案 0 :(得分:0)

@Override
public boolean dispatchTouchEvent(MotionEvent event)
{
   switch(event.getAction())
   {
      case MotionEvent.ACTION_DOWN:
         hit_scrollx = view.getScrollX();
         hit_scrolly = view.getScrollY();
         hit_touchx = (int) event.getX();
         hit_touchy = (int) event.getY();
         break;
      case MotionEvent.ACTION_UP:
         int x = (int) event.getX();
         int y = (int) event.getY();
         if (x<hit_touchx-5 || x>hit_touchx+5 || y<hit_touchy-5 || y>hit_touchy+5)
            scrollAbsolute(hit_scrollx+hit_touchx-x, hit_scrolly+hit_touchy-y);
         break;
   }
   return(true);
}

这假设您有自己的scrollAbsolute,它会为您的应用程序剪切并使用View.scrollTo。这是为具有主滚动视图的活动而设计的。它捕获所有触摸事件。 “5”是为了防止在无意义的触摸上进行不必要的刷新。