2015-03-06 2 views
0

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

Дело в том, что я бы хотел, чтобы мой SurfaceView оставался на экране, то есть я не хочу прокручивать SurfaceView сам, я просто хочу создать иллюзию, что пользователь прокручивает содержимое, и поэтому отобразите полосы прокрутки.

Я пробовал настройку android: scrollbars = "vertical" в XML-формате макета, я пробовал mSurfaceView.setVerticalScrollBarEnabled (true); и я попробовал awakenScrollBars(); всякий раз, когда пользователь касается SurfaceView, однако ни один из них не отображает полосы прокрутки.

Итак, можно ли отображать стандартную панель прокрутки Android на SurfaceView?

+0

Вы пробовали использовать scrollView, встраивая SurfaceView? Не уверен, что это сработает, но будет единственным способом показать полосы прокрутки по умолчанию. –

+0

Спасибо, но в моем случае SurfaceView всегда имеет тот же размер, что и экран, поэтому его не нужно размещать внутри контейнера ScrollView. Даже если я поместил его там, полосы прокрутки всегда будут того же размера, что и побеждает цель. И если я сделаю SurfaceView большим, чем экран, так что размещение его в ScrollView будет иметь смысл, тогда я столкнулся бы с проблемами производительности, не говоря уже о повторной архитектуре кода. Я решил просто нарисовать собственные полосы прокрутки. – Levon

ответ

0

короткий ответ: нет!

Все, что SurfaceView когда-либо рисует на экране, - это то, что вы прямо вызываете, чтобы рисовать, используя все lockCanvas и unlockCanvasAndPost, о которых вы знаете.

Ввод этих параметров в XML позволяет вам читать их на Java через AttributeSet в конструкторе, но это только для конфигурации, оно ничего не рисует.

Смежные вопросы