2012-10-15 5 views
1

WebView를 사용하여 확대/축소 가능해야하므로 WebView를 사용하여 내 리소스에있는 이미지를 표시하고 있습니다. 동적으로 나는 이미지에 점을 그릴 수 있어야합니다. 그것은지도입니다. 이렇게하려면로드 된 이미지 위에 캔버스를 넣으려고합니다. 캔버스에 포인트가 그려집니다.안드로이드 : Webview에서 Canvas 그리기

mWebView = (WebView)findViewById(R.id.webview); 
mWebView.getSettings().setBuiltInZoomControls(true); 
mWebView.loadUrl("file:///android_res/drawable/map.png"); 

Canvas c = new Canvas(); 
c.drawARGB(10, 0, 100, 12);//This is just random. It is where I would draw the points 
mWebView.draw(c); 

코드의 마지막 3 줄은 아무 것도 수행하지 않습니다.

WebView 위에 그리기위한 더 좋은 방법이 있습니까? 이 방법도 가능합니까?

+0

'WebView'의 서브 클래스를 만들고'onDraw()'메소드를 오버라이드 했습니까? 이 메소드는'Canvas' 매개 변수를받습니다.이 매개 변수를 사용하여 이미지를 그릴 수 있습니다. – acj

+0

나는 그것을 시도 할 것이다. 고맙습니다. – Colin

+0

좋아하는 검색 엔진을 통해 흔히 볼 수있는 제 3 자 확대/축소 가능 이미지 뷰 대체품이 많이 있습니다. 'WebView '사용은 필요하지 않습니다. – CommonsWare

답변

0

마지막 줄에는 map.png가로드되지 않은 새로운 캔버스를 제공하고 있습니다.

당신이해야 할 것은 :

공용 클래스 MyWebView 웹보기를 확장 {

:

  • 같은 자사의 onDraw() 메소드는,
  • 재정의 웹보기를 확장하는 새 클래스를 만듭니다

    @Override protected void onDraw (캔버스 캔버스) {

    super.onDraw(canvas); 
          canvas.drawPoint(yourPoint); 
    } 
    

    }

    의 변수 확인 :

     MyWebView mWebView = new MyWebView(this); 
         mWebView.getSettings().setBuiltInZoomControls(true); 
         mWebView.loadUrl("file:///android_res/drawable/map.png"); 
    

    이 레이아웃의 자신의 메인보기이보기를 추가합니다.

     myMainView.add(wv); 
    

    완료!

관련 문제