Android在webView上用手指画图

Android在webView上用手指画图,android,touch,overlay,android-webview,draw,Android,Touch,Overlay,Android Webview,Draw,如何在网络视图上画画,我希望用户能够在网络视图上画圈和涂鸦。gestureoverlayview会很好,但在用户将手指从屏幕上取下后,绘制的线将始终消失 我想让用户能够在屏幕上画,并保持画线时,手指是提出了 非常感谢您可以将一个网络视图堆叠在画布下面,这样用户就可以在一个相对的窗口内用触摸在画布上画画。为了说明这一点,这里有一个例子取自FingerPaint活动中的API演示项目 我稍微修改了这个活动,在MyView后面显示了一个WebView。我修改了代码,使MyView的背景具有00 alp

如何在网络视图上画画,我希望用户能够在网络视图上画圈和涂鸦。gestureoverlayview会很好,但在用户将手指从屏幕上取下后,绘制的线将始终消失

我想让用户能够在屏幕上画,并保持画线时,手指是提出了


非常感谢

您可以将一个网络视图堆叠在画布下面,这样用户就可以在一个相对的窗口内用触摸在画布上画画。为了说明这一点,这里有一个例子取自FingerPaint活动中的API演示项目

我稍微修改了这个活动,在MyView后面显示了一个WebView。我修改了代码,使MyView的背景具有00 alpha(使其不可见)。因此,对于用户来说,它看起来就像是在浏览器页面的“顶部”绘制

如果您还没有它,请抓取一份API演示项目的副本并打开FingerPaint.java文件,它位于graphics下。打开该选项后,请编辑onCreate()方法,如下所示:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    RelativeLayout rl = new RelativeLayout(this);
    WebView wv = new WebView(this);
    rl.addView(wv);
    rl.addView(new MyView(this));
    setContentView(rl);
    wv.loadUrl("http://google.com");
    mPaint = new Paint();
    mPaint.setAntiAlias(true);
    mPaint.setDither(true);
    mPaint.setColor(0xFFFF0000);
    mPaint.setStyle(Paint.Style.STROKE);
    mPaint.setStrokeJoin(Paint.Join.ROUND);
    mPaint.setStrokeCap(Paint.Cap.ROUND);
    mPaint.setStrokeWidth(12);
    mEmboss = new EmbossMaskFilter(new float[] { 1, 1, 1 },0.4f, 6, 3.5f);
    mBlur = new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL);
}
然后找到MyView类的onDraw()方法。在其中,将第一行更改为:

canvas.drawColor(0xFFAAAAAA);
致:


运行应用程序,然后单击图形->指画。如果一切顺利,你应该有一个谷歌主页,你可以利用它。

谢谢,这真的很好用。任何改变绘图响应性的方法,都是一个很大的滞后。另外,如何将一些控件从我的布局带到webview的顶部?:)您可以通过在RelativeLayout上调用.addView()并将其作为参数传递(包括按钮等)来添加所需的任何视图。至于响应性,您必须深入MyView类中的touch方法。不过我不确定你能得到多好的结果。在我的设备上,它的响应速度似乎相当快。我启用了硬件加速,这就完成了任务,在启用之前,它的响应速度非常慢。
canvas.drawColor(0x00AAAAAA);