2014-12-10 3 views
1

내 웹보기에서 확대/축소를 삽입해야하지만 +/- 내비게이션 컨트롤이 필요하지 않습니다.android web view controls

package pack.ivoclar; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 


public class AppActivity extends Activity { 

    String url = null; 


    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 

     Intent intent; 
     intent = getIntent(); 
     url = intent.getStringExtra("url"); 

     loadPage(); 

    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return true; 
    } 


    @Override 
    public boolean onOptionsItemSelected(MenuItem item) 
    { 

     switch(item.getItemId()) 
     { 
      case R.id.exit: 
      { 
       finish(); 
       return true; 
      } 
      default: 
       return super.onOptionsItemSelected(item); 

     } 


    } 

    private void loadPage() 
    { 

     setContentView(R.layout.main); 

     WebView myWebView; 
     myWebView = (WebView) findViewById(R.id.webview); 
     myWebView.getSettings().setJavaScriptEnabled(true); 
     myWebView.setWebChromeClient(new WebChromeClient()); 
     myWebView.getSettings().setBuiltInZoomControls(false); 
     myWebView.getSettings().setSupportZoom(false); 

     myWebView.loadUrl(url); 


     myWebView.setWebViewClient 
     (new WebViewClient(){ 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url){ 
       view.loadUrl(url); 

       return false; 

      } 

      @Override 
      public void onReceivedError (WebView view, int errorCode, String description, String failingUrl) 
      { 

       Intent Error; 
       Error = new Intent(getBaseContext(), ErrorActivity.class); 
       Error.putExtra("url", failingUrl); 
       startActivity(Error); 
       finish(); 

      } 

     }); 


    } 

} 

내 안드로이드 API 레벨은 안드로이드 +2.3.3 작업을 10 : 그래서 내 목표는이 탐색 컨트롤 (+/- 버튼)

내 코드가를 숨기는 것입니다. 나를 도와 줄 수 있습니까?

+0

귀하의 질문은 확실하지 않습니다 –

+0

편집 된 질문 –

+0

시도'myWebView.getSettings(). setDisplayZoomControls (거짓); ' –

답변

0

사용자가 핀치를 사용하여 계속 확대/축소 할 수 있지만 컨트롤이 표시되지 않도록하려면 setDisplayZoomControls을 사용해야합니다.

myWebView.getSettings().setDisplayZoomControls(false); 

, API (10)에 적용 할 수 refer this 당신이 자신 만의 웹보기를 작성하고 사전에 벌집에 대해 하나의 해킹을 아래처럼 할 필요가

+0

이 함수는 API 레벨 11이고 API 레벨 10이 필요합니다 –

0

:

public class WebViewNoZoomControllers extends WebView { 

private ZoomButtonsController zoomControl = null; 

public WebViewNoZoomControllers(Context context) { 
    super(context); 
    prepare(); 
} 

public WebViewNoZoomControllers(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    prepare(); 
} 

public WebViewNoZoomControllers(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    prepare(); 
} 

@SuppressWarnings("deprecation") 
@SuppressLint("NewApi") 
private void prepare(){ 
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { 
     this.getSettings().setBuiltInZoomControls(true); 
     this.getSettings().setDisplayZoomControls(false); //API11 and above only 
    } else 
     assignControllers(); 
} 

private void assignControllers() { 
    try { 
     Class webview = Class.forName("android.webkit.WebView"); 
     Method method = webview.getMethod("getZoomButtonsController"); 
     zoomControl = (ZoomButtonsController) method.invoke(this, null); 
    } catch (Exception e) {} 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    if (zoomControl != null && zoomControl.isVisible()) 
     zoomControl.setVisible(false); 
    return super.onTouchEvent(event); 
} 

} 
+0

작업을 준비하려면 setDisplayZoomControls에서 오류가 발생합니다. ty –

+0

어떤 오류가 있습니까? lint의 에러를 말하지 말자.'@SuppressWarnings ("deprecation")'과'@SuppressLint ("NewApi")'를 추가 했습니까? (위 소스에 추가했습니다.) – snachmsm

+0

setDisplayZoomControls 및 HONEYCOMB에서 오류가 발생했습니다. ty –