2
我是Android编程的新手。我想在图像上画线,并允许用户放大和缩小。由于ImageView似乎没有内置缩放控件,因此我决定使用WebView。我扩展了WebView类并覆盖了onDraw方法,让我在画布上绘制线条。然后我将我的图像加载到WebView中。这显示了我在WebView中放置在图像上的画布中绘制的线条。将画布拖入Android WebView并缩放
虽然我可以放大和缩小WebView中的图像,但我在画布中绘制的线条并未相应缩放;我的图像被放大,但是线条(画布)在屏幕上保持相同的大小。放大我的WebView时,是否还有一些方法可以放大我的画布?
此代码是在我的主要活动:
final CustomWebView webview = (CustomWebView) findViewById(R.id.webView1);
webview.loadUrl("file:///android_asset/myimage.png");
WebSettings websettings;
websettings = webview.getSettings();
websettings.setBuiltInZoomControls(true);
此代码是我CustomWebView并绘制一条直线:
public CustomWebView (Context context, AttributeSet attrs)
{
super (context, attrs);
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw (canvas);
Paint p = new Paint();
p.setColor (Color.RED);
canvas.drawLine (20, 10, 300, 400, p);
}
我也试过直接加载图像到画布中CustomWebView使用位图,然后在其上绘制线条。
map = BitmapFactory.decodeResource(getResources(), R.drawable.demo);
canvas.drawBitmap(map, 0, 0, null);
但是这不允许我放大画布。另外,在平移图像时它确实非常慢。
我应该选择这种方式而不是使用WebView方式吗?如果是的话,有没有办法让它更有效率?还是有更好的方法来实现我想要实现的目标?