我是Android编程的新手。我想在图像上画线并允许用户放大和缩小。由于ImageView似乎没有内置的缩放控件,我决定使用WebView。我扩展了WebView类并覆盖了onDraw方法,让我在画布上绘制线条。然后我将我的图像加载到WebView中。这向我展示了我在画布中绘制的线条放置在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方式吗?如果是的话,是否有某种方法可以提高效率?或者是否有更好的方法来实现我想要实现的目标?
答案 0 :(得分:2)
使用
webview.loadUrl("file:///android_asset/myimage.png");
WebSettings websettings;
websettings = webview.getSettings();
websettings.setBuiltInZoomControls(true);
CustomWebView