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方式嗎?如果是的話,有沒有辦法讓它更有效率?還是有更好的方法來實現我想要實現的目標?