Android рисует пальцем над webView - PullRequest
0 голосов
/ 31 марта 2012

Как я могу рисовать поверх веб-вида, я хочу, чтобы пользователь мог кружить и рисовать поверх веб-вида.Представление наложения жестов было бы хорошо, но нарисованная линия всегда исчезнет после того, как пользователь уберет палец с экрана.

Я бы хотел, чтобы пользователь мог рисовать на экране и сохранять нарисованные линии там,палец снят.

Большое спасибо

1 Ответ

1 голос
/ 31 марта 2012

Вы можете поместить WebView под Canvas некоторого вида, который позволяет пользователю рисовать на нем прикосновением внутри RelativeLayout. Чтобы проиллюстрировать это, вот пример, взятый из проекта API Demos внутри действия FingerPaint.

Я немного изменил это действие, чтобы отобразить WebView за MyView. И я изменил код, чтобы фон MyView имел альфа 00 (сделать его невидимым). Таким образом, пользователю кажется, что они рисуют «сверху» страницы браузера.

Если у вас его еще нет, возьмите копию проекта 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);
}

Затем найдите метод onDraw () класса MyView. Внутри меняем первую строку с:

canvas.drawColor(0xFFAAAAAA);

до:

canvas.drawColor(0x00AAAAAA);

Запустите приложение и щелкните по графике-> FingerPaint. Если все идет хорошо, у вас должна быть домашняя страница Google, на которой вы можете рисовать.

...