Как реализовать представление каракулей в OpenGL в Android? - PullRequest
0 голосов
/ 30 декабря 2011

У меня есть приложение для Android.Я хочу использовать OpenGL для рендеринга своих изображений и добавления эффектов.Также я хочу отдельное представление, где пользователь может писать.Я хочу, чтобы цвет фона вида был прозрачным.Я также хочу увеличивать и уменьшать масштаб изображения при увеличении или уменьшении изображения.Я думаю, что я буду управлять увеличением и уменьшением, используя glScalef().Но мне также нужно будет увеличить ширину пера при увеличении (увеличении) вида.Я хочу написать эту точку зрения в openGL.Я новичок в Android и OpenGL.пожалуйста, направьте меня со своими идеями.

1 Ответ

0 голосов
/ 03 января 2012

Я попробовал другой подход, чтобы реализовать мою функциональность, состоящую из надписей над glSurfaceView, и одновременно иметь возможность увеличивать и уменьшать масштаб.Я сделал все наброски поверх обычного андроида при условии холста.На заднем плане у меня есть GLSurfaceView.Вдобавок к этому у меня есть представление scribbble (http://www.java2s.com/Code/Android/2D-Graphics/Classforthescribblememopad.htm). Я установил фон ScribbleView как ПРОЗРАЧНЫЙ. Когда я закончил Scribbling, я отключил scribbling, используя onClickListener of Button (когда scribbling выключен, пользователь может увеличивать и уменьшать масштаб)Я могу увеличивать или уменьшать масштаб, используя ScaleGestureDetector.SimpleOnScaleGestureListener. В его onScale() я использую mScaleFactor=(mScaleFactor * detector.getScaleFactor());, где mScaleFactor инициализируется в 1f, а mScaleFactor используется для отслеживания текущего ScalingFactor. Для масштабирования glSurface я использую glScalef(mScaleFactor,mScaleFactor) и дляЯ использую масштабирование холста canvas.scale(mScaleFactor,mScaleFactor,getWidth()/2,getHeight()/2). Я установил точку поворота на середину вида, поскольку координаты холста таковы, что его начало находится слева вверху. После того, как я увеличил или уменьшил холст, Затем для правильной пометкив onTouchEvent (Событие) представления Scribble я сделал приведенное ниже отображение для

event.getX() and event.getY(). <br>
x=(event.getX()- getWidth() / 2) / getmScaleFactor() + getWidth() / 2;<br>
y=(event.getX()- getWidth() / 2) / getmScaleFactor() + getWidth() / 2;<br>
<br>

Теперь, когда я делаю каракули на увеличенном или уменьшенном холсте, я могу писать в точке, где я правильно касаюсь экрана.
Надеюсь, я смог дать вам немногоПроницательность моего подхода.


Спасибо, Кришна.

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