1

我正在使用 WebView 来显示我的资源中的图像,使用 WebView 因为我需要它是可缩放的。动态地,我需要能够在图像上绘制点,它是一张地图。为此,我试图在加载的图像上放置一个画布。画布上将绘制点。

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 上绘图?这种方式甚至可能吗?

4

1 回答 1

0

在你的最后一行,你给它一个新的画布(它不会加载 map.png)。

你应该做的是:

  • 创建一个扩展 WebView 的新类
  • 覆盖其 onDraw() 方法,例如:

    public class MyWebView extends WebView{
    
        @Override
        protected void onDraw(Canvas canvas) {
            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);

完毕!

于 2013-09-26T09:18:00.653 回答