Я новичок в программировании на 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 и рисует один прямойline:
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?Если да, есть ли какой-нибудь способ сделать его более эффективным?Или есть какой-то лучший способ реализовать то, чего я пытаюсь достичь?