Android Webview Zooming باستخدام Scaledetector
سؤال
مرحبا،
هل من الممكن دعم تكبير عرض الويب (على غرار المتصفح الافتراضي) عندما يقرص المستخدم ويحرك أصابعه أقرب / أبعد. أنا أستخدم 2.2 و tatted هذا سيكون ممكنا باستخدام ScaleGtureDetector. المشكلة هي أنه لا يمكنني العثور على طريقة لتعيين المقياس. WebView.getScale () إرجاع المقياس الحالي الذي يتغير من خلال Zoomin () و Zoomout () ولكن لا يمكنني العثور على setScale () أو خيار لتعيين التكبير افتراضيًا والسماح لنظام التشغيل بالتعامل معه.
أندي
المحلول
يستخدم:
webview.getSettings().setBuiltInZoomControls(true);
للقيام بتكبير قرصة ووضع أزرار التكبير/الخارج على الشاشة.
نصائح أخرى
تحتاج إلى تنفيذ OnTouchevent (MotionEvent) في WebView الخاص بك.
ثم في هذا الحدث ، تمرير الحركة إلى ScaleGtureStector حتى يتمكن من معالجته ، ثم اتصل بـ Super.
class ScalableWebView extends WebView implements ScaleGestureDetector.OnScaleGestureListener
{
ScaleGestureDetector mScaleDetector = new ScaleGestureDetector(this, this);
public boolean onTouchEvent(MotionEvent event)
{
if(mScaleDetector.onTouchEvent(event))
return true;
return super.onTouchEvent(event);
}
boolean onScaleBegin(ScaleGestureDetector detector)
{
//handle scale event begin
}
boolean onScale(ScaleGestureDetector detector)
{
//handle scale event
}
boolean onScaleEnd(ScaleGestureDetector detector)
{
//handle scale event end
}
}
هناك setScale
، جرب هذا :
webView.setInitialScale((int)(100 * webView.getScale());
لا تنتمي إلى StackOverflow