ダブルタップでネイティブの WebView ズームを複製する方法を探していますが、代わりに長押しでトリガーされます。ダブルタブ ズームでは、ズームをタッチ ポイントを中心にスケーリングし、プログラムでデフォルトのズーム レベルに戻すことができるようにしたいと考えています。
ダブルタップ ジェスチャを長押しハンドラー内の WebView に偽装し、長押しの座標を提供する方法があるのではないかと考えていましたが、それを行う方法を見つけることができません。
これはできますか?
ダブルタップでネイティブの WebView ズームを複製する方法を探していますが、代わりに長押しでトリガーされます。ダブルタブ ズームでは、ズームをタッチ ポイントを中心にスケーリングし、プログラムでデフォルトのズーム レベルに戻すことができるようにしたいと考えています。
ダブルタップ ジェスチャを長押しハンドラー内の WebView に偽装し、長押しの座標を提供する方法があるのではないかと考えていましたが、それを行う方法を見つけることができません。
これはできますか?
この投稿にある情報に基づいて、これに対するちょっとしたハッキーな解決策があれば、実行可能なものが見つかりました:
次の内容を置き換えました。
public void simulateDoubleTap()
{
simulateDoubleTapEvent(0);
simulateDoubleTapEvent(2);
simulateDoubleTapEvent(2);
simulateDoubleTapEvent(1);
simulateDoubleTapEvent(0);
}
と:
public void simulateDoubleTap()
{
simulateDoubleTapEvent(MotionEvent.ACTION_DOWN);
simulateDoubleTapEvent(MotionEvent.ACTION_UP);
simulateDoubleTapEvent(MotionEvent.ACTION_DOWN);
simulateDoubleTapEvent(MotionEvent.ACTION_UP);
}
そして、longpress ハンドラー内からsimulateDoubleTap() への呼び出しを追加しました。これは機能しているように見えましたが、100% 一貫していませんでした。イベント間に小さな遅延を追加して遊んで、それがスムーズになるかどうかを確認したい場合があります. また、ズームインするときは 1 つのイベントで動作するのに、ズームアウトするにはダブルタップのトリガーが 2 つかかることに気付きました。これは、私が使用しているジェスチャ ハンドラー、またはその他の問題が原因である可能性がありますが、通常、これは必要なことを行っているようです。