Использование FrameLayout в качестве живых обоев
Я пытаюсь использовать FrameLayout
как содержание живых обоев. Согласно этому ответу Ромена Гая, это должно быть возможно, но мне не особо повезло, позвонив .measure()
а также .layout()
на вид. Кто-нибудь может дать мне краткий пример того, как использовать обычный макет внутри живых обоев?
1 ответ
Это обои, с которыми вы можете возиться, верно? Если вы идете выше обычных представлений, вам, возможно, придется реализовать некоторую пользовательскую логику, особенно если вы рисуете изображения. FrameLayout имеет функции рисования фона и переднего плана. Вы можете использовать XML или Java для добавления обычных представлений в FrameLayout
Вы также можете создать собственный объект Drawable, чтобы сделать множество забавных вещей относительно пользовательской живописи. Объект Drawable просто отправляется на холст вида.
Если вы хотите измерить представления, вам нужно будет сделать это после того, как представление пройдет через его коды измерения и макета. Это означает, что выполнение этого в onCreate() возвращает 0. Многим людям повезло, что они сделали это в обратном вызове, например onWindowFocusedChanged.