2012-02-28 76 views
2

我正在android。我想制作一个我想要执行webview翻转的应用程序。我已完成与图像翻转操作,但我不知道如何在网页中使用翻转操作。Android:浏览web视图

假设我有一个比我的屏幕长度更长的网页,那么当用户使用右键翻页时,我想显示该页面的剩余内容。 通常我们使用垂直滚动条来查看页面的剩余内容,但我不想使用滚动条,我想将剩余内容显示到下一页,我们必须翻转。

例如: -

enter image description here

我希望你明白我想要什么,如果我的问题有任何疑问,那么请随时问我任何时候我在这里24小时。

你可以给我推荐一些与此相关的网页链接。

预先感谢您...

+0

你说的“翻转”的意思是什么逻辑?这是触摸手势还是手机或其他东西的动作?你能详细说明一下吗? – scorpiodawg 2012-03-02 20:43:24

+0

是的,先生这触摸手势的屏幕刷卡。 – 2012-03-03 05:27:42

+3

你有没有想过这个问题?任何代码为你工作? – MSaudi 2013-10-09 08:37:24

回答

2

你的页面加载后,试试:

View v = getYourWebView(); 
v.setDrawingCacheEnabled(true); 

//cheat to force webview to draw itself 
v.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
     MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight()); 
v.buildDrawingCache(true); 
Bitmap b = Bitmap.createBitmap(v.getDrawingCache()); 
v.setDrawingCacheEnabled(false); // clear drawing cache 

然后你就可以再次滚动网页视图并做到这一点,那么你可以有两个位图,你可以翻转。 你也可以尝试将你的webview放入滚动视图并将webview设置为较大的高度,这样你就可以一次捕捉整个网站的位图。

+0

这对制作网页截图很有用,好主意!但是,如果他只是向用户显示屏幕截图图片,网页就不再是互动了,没有链接,没有播放视频..或者我的想法错了? – Ewoks 2012-03-07 07:35:34

+0

Ewoks - 使用时可以使用屏幕截图翻转页面,并在翻转动画结束时显示纯web视图。这样页面仍然是交互式的,但我不确定是否可以在webview中锁定垂直滚动。 – Deadeye 2012-03-07 12:39:51

+0

嘿家伙我知道如何实现按手势刷卡功能,请帮助我如何使用水平滚动视图打破或显示我的网页视图。 – 2012-03-09 05:04:40

0

此处的代码未经测试,概念验证码 - 但考虑到您的问题,您似乎仍处于原型设计阶段。让我知道你怎样去!

这里描述的方法将用于“原子地”翻页 - 即用户在他们的手指上进行滑动,然后页面改变。如果你是在一个实际的页面卷曲之后,你需要把我在这里写的东西和http://code.google.com/p/android-page-curl/这样的东西结合起来。

首先,根据Fling Gesture and Webview in Android,附加GestureListener和GestureDetector的子类WebView。为了方便,我在这里复制了代码。

class MyWebView extends WebView { 
    Context context; 
    GestureDetector gd; 

    public MyWebView(Context context) { 
     super(context); 

     this.context = context; 
     gd = new GestureDetector(context, sogl); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     return gd.onTouchEvent(event); 
    } 

    GestureDetector.SimpleOnGestureListener sogl = new GestureDetector.SimpleOnGestureListener() { 
     public boolean onDown(MotionEvent event) { 
      return true; 
     } 

     public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) { 
      if (event1.getRawX() > event2.getRawX()) { 
       // Scroll up 
      } else { 
       // Scroll down 
      } 
      return true; 
     } 
    }; 
} 

然后,当用户以某种方式抛出'页面'时,请执行以下操作;

  • 渲染的WebView的当前内容为位图,按@死眼的回答

如:

View v = getYourWebView(); 
v.setDrawingCacheEnabled(true); 

// Cheat to force WebView to draw itself 
v.measure(
    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED) 
); 

v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight()); 
v.buildDrawingCache(true); 

Bitmap b = Bitmap.createBitmap(v.getDrawingCache()); 
v.setDrawingCacheEnabled(false); 
  • 滚动显示的WebView下跌正好一个视域的长度

使用jQuery并完成它:

$(document).scrollTop($(document).scrollTop()+$(window).height()); 
  • 呈现下一个页面到第二位图

然后翻转远离使用任何页面翻转你已经写:)