Android用手指画在webView上

时间:2012-03-30 22:50:23

标签: android touch overlay android-webview draw

如何绘制webView,我希望用户能够在webview上圈出并涂鸦。 gestureoverlayview会很好,但是当用户将手指从屏幕上移开后,绘制的线条将永远消失。

我希望用户能够在屏幕上绘图并在手指抬起时保持绘制的线条。

非常感谢

1 个答案:

答案 0 :(得分:1)

您可以在某种Canvas下面堆叠一个WebView,允许用户在RelativeLayout内部进行触摸绘制。为了说明这一点,可以从FingerPaint活动中的API Demos项目中获取一个示例。

我稍微修改了该活动以在MyView后面显示WebView。我改变了代码,使MyView的背景具有00 alpha(使其不可见)。因此,对于用户而言,它们似乎是在浏览器页面的“顶部”上绘制的。

如果您还没有自己获取API Demos项目的副本并打开FingerPaint.java文件,它就在图形下。打开后,编辑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);

为:

canvas.drawColor(0x00AAAAAA);

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