Добавить и управлять слоем поверх холста, используя SurfaceView - PullRequest
1 голос
/ 16 февраля 2012

Я хочу сказать, что, возможно (возможно) слово «слой» не является правильным, но я считаю, что оно дает правильное представление о том, что я хочу сделать.

Я использую SurfaceView, которыйреализует SurfaceHolder.Callback.

Я работаю на холсте.Я рисую довольно сложный набор точек.У меня есть холст, переведенный, повернутый и масштабированный (translateX и translateY - это переменная, которая изменяется, когда пользователь взаимодействует с холстом):

canvas.translate(0, 0);
canvas.rotate(-90);
canvas.translate(translateX, translateY);
canvas.scale(scaleX, scaleY);

Мой следующий шаг - добавить текст и изображения поверх этого холста.И текст, и изображения не должны быть масштабированы или повернуты, только переведены (они должны следовать холсту).

По этой причине я думал о том, чтобы иметь какой-то «слой» или нечто подобное прозрачному, которое следует только захолст движется и не изменяется при увеличении или уменьшении или при вращении [воспринимайте их как некий интерфейс, который остается над всем холстом].

Заранее спасибо.

N.

РЕДАКТИРОВАТЬ:

Вот фрагмент:

  @Override
    public void onDraw(Canvas canvas) {
        try{
            pt.setColor(Color.BLACK);
            canvas.drawColor(Color.WHITE);
            canvas.drawText("HELLOOOOOOOOOOOOOOOO", 100, 10, pt);
            pt.setAntiAlias(true);  
            canvas.save();
            canvas.rotate(-90, 0, 0);
            canvas.drawText("HELLOOOOOOOOOOOOOOOO", getHeight(), 10, pt);
            canvas.restore();
        }
        catch(Exception e)
        {}
    }

Я хочу, чтобы два «HELLOOOOOO» казались близко друг к другу.Я не могу понять, как ...

Ответы [ 2 ]

0 голосов
/ 21 февраля 2012

Мне удалось это исправить.Я просто повернул холст, используя:

rotate(+90, X, Y);

, а затем повернул назад

rotate(-90, X, Y);

При этом координаты (X, Y) остаются прежними.

0 голосов
/ 16 февраля 2012

Почему бы не использовать save () и restore (), чтобы в конце концов ваш холст снова стал "нормальным".Чем вы можете легко нарисовать его?

Сохраните и восстановите работу, как SceneGraph, если вы слышали об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...