2012-02-29 2 views
5

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

Мне нужен пользовательский вид, который может иметь движение, я хочу поместить это представление на часть моего relativeLayout в один из моих основных видов деятельности. Я следил за учебником по движению (ссылка ниже), в котором был создан updateThread и класс, расширяющий SurfaceView. http://mobile.tutsplus.com/tutorials/android/android-sdk-achieving-movement/

Это работает, и я могу поместить его в свое приложение. Проблема возникает, когда я хочу поместить это в свой макет на другое действие. Мне удалось включить представление, но затем он отображается в полноэкранном режиме, за другими элементами. Часть моей проблемы заключается в том, что размер этого зависит от размера экрана и т. Д. В relativelayout используется много изображений, где Android будет выбирать нужный размер изображения. Что такое SurfaceView, как установить размер, зависящий от телефона?

Прямо сейчас, у меня есть относительный макет, который правильно отображается с изображениями, в которых должно появиться пользовательское представление. Изображения показывают правильный размер и представляют собой просто статическую версию того, что мне нужно показать. Вы знаете, как я могу перемещать свой пользовательский вид в это пространство?

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

Много много много спасибо заранее

ответ

14

Чтобы установить размер SurfaceView использовать этот метод:

surfaceView.getHolder().setFixedSize(width, height) 
+0

Это не устанавливает размер SurfaceView. setFixedSize (ширина, высота) влияет только на масштабирование пикселей, сгенерированных из SurfaceHolder, как описано здесь https://android-developers.googleblog.com/2013/09/using-hardware-scaler-for-performance.html. См. Также ответ fadden в http://stackoverflow.com/questions/38118219/what-is-the-use-of-calling-surfaceholder-setfixedsize – tomalf2

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