Есть потребность сделать свой браузер со стартовой страницей яндекса. но никак не могу реализовать пинч зум. нет конкретного примера, а так я уже моз сломал. есть базовый(готовый) год без пинча. помогите кто нибудь советом, а лучше кодом. основа выглядит так: MainAktivity.jar | Код | package ru.witnaswiki;
import android.os.Bundle; import android.app.Activity; import android.view.KeyEvent; import android.view.Menu; import android.webkit.WebView; import android.webkit.WebViewClient;
public class MainActivity extends Activity { private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } WebView mWebView;
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://yandex.ru"); mWebView.setWebViewClient(new HelloWebViewClient()); ; } @Override public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu); return true; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); } }
|
ну как сюда встроить пинч-зум??? я пробовал такое решение, | Код | package ru.witnasbaiki;
import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.MotionEvent; import android.view.ScaleGestureDetector; import android.view.ScaleGestureDetector.OnScaleGestureListener; import android.view.View; import android.view.View.OnTouchListener; import android.webkit.WebView; import android.webkit.WebViewClient;
public class MainActivity extends Activity {public class MyTextView extends WebView implements OnTouchListener,OnScaleGestureListener { public ScaleGestureDetector scaledetector; private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } WebView mWebView;
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.webview); // включаем поддержку JavaScript mWebView.getSettings().setJavaScriptEnabled(true); // указываем страницу загрузки mWebView.loadUrl("http://www.bayki.org/"); mWebView.setWebViewClient(new HelloWebViewClient()); ; } ScaleGestureDetector mScaleDetector = new ScaleGestureDetector(getContext(), this); @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public MyTextView(Context context, AttributeSet attrs) { super(context, attrs); Log.d("mWebView", "mWebView"); } @Override public boolean onScale(ScaleGestureDetector detector) { Log.d("mWebView", "onScale"); return true; } @Override public boolean onScaleBegin(ScaleGestureDetector detector) { Log.d("mWebView", "onScaleBegin"); return true; } @Override public void onScaleEnd(ScaleGestureDetector detector) { Log.d("mWebView", "onScaleEnd"); } @Override public boolean onTouch(View v, MotionEvent event) { Log.d("mWebView", "onTouch"); if(mScaleDetector.onTouchEvent(event)) return true; return super.onTouchEvent(event); }
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }}}
|
но видимо запутался в кодах... ПА МА ГИ ТЕ!!!
|