ここのコードはテストされておらず、概念コードの証明ですが、あなたの質問ではまだプロトタイピング段階にあるようです。あなたはどうやって行くのか教えてください!
ここに記載されている方法は、「原子的に」ページを反転するために機能します。つまり、ユーザーが指をスワイプすると、となり、ページが変更されます。実際のページカールの後にいる場合は、私がここに書いたものをhttp://code.google.com/p/android-page-curl/のように組み合わせる必要があります。
まず、サブクラスのWebViewには、Fling Gesture and Webview in AndroidのようにGestureListenerとGestureDetectorを接続します。私は便宜のためにここにコードをコピーしました。
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);
jQueryを使用してください:
$(document).scrollTop($(document).scrollTop()+$(window).height());
- すでに書いたものは何でもページ反転ロジックを使用して離れて反転後、第2のビットマップ
に次のページをレンダリングします:)
あなたは「フリップ」とはどういう意味ですか?これは、タッチジェスチャーや電話やその他の動きですか?あなたは詳しく説明できますか? – scorpiodawg
はい、このスワイプの画面をタッチジェスチャーで表示します。 –
あなたはこの問題を考え出しましたか?あなたのために働いたコードはどれですか? – MSaudi