- Крутящиеся экраны для андроид
- Gadgets Help
- Как выключить автоматический поворот экрана в телефонах и планшетах на базе Android
- Начнем, с более новых версий Android, от 6.0 и выше:
- 5 лучших приложений для управления поворотом экрана на Android-устройстве
- Повороты экрана в Android без боли
- Предисловие
- Когда начались проблемы?
- Возможное решение
- Да начнется магия
- Реализация приложения
- Как сделать объёмные обои с эффектом движения на Samsung.
- А как установить обои с эффектом движения на смартфонах Samsung Galaxy?
- Инструкция по установке обоев с эффектом движения на смартфонах Samsung.
Крутящиеся экраны для андроид
Gadgets Help
Обзоры, новости, инструкции.
Как выключить автоматический поворот экрана в телефонах и планшетах на базе Android
Основная масса смартфонов и планшетов, управляемых системой Android, изначально настроена таким образом, что изображение на экране устройства автоматически поворачивается «ногами вниз», при повороте самого гаджета. Однако, по разным причинам, это не всегда может быть удобно.
Как же отключить автоматический поворот изображения на экране?
Начнем, с более новых версий Android, от 6.0 и выше:
Тут все довольно просто. Нужно провести пальцем от самого верха главного экрана вниз, тем самым достав шторку главных настроек .
И нажать один раз на значок «поворота экрана», сделав, тем самым, его не активным. После этого, экран вашего смартфона или планшета перестанет переворачиваться самостоятельно.
Включить функцию обратно, можно таким же способом.
Для того, чтобы отключить автоматический поворот экрана в более ранних версиях Android:
Открываем главное меню, и нажимаем на пункт «настройки»
В появившемся окне, выбираем строку «экран»
После чего, остается только найти и убрать галочку напротив надписи «Автоповорот экрана»
Готово! При желании снова включить автоматически поворачивающуюся картинку, проделайте то же самое, для возврата активной галочки.
Источник
5 лучших приложений для управления поворотом экрана на Android-устройстве
Функция смены ориентации экрана на Android не всегда работает так, как хочется пользователю — некоторые приложения не переворачиваются, а другие, напротив, переходят из портретного режима в ландшафтный и наоборот в самый неподходящий момент. К счастью, на Android есть приложения, которые позволяют настроить, в каких случая ориентация будет меняться, а в каких нет.
Это приложение добавляет в настройки ориентации несколько новых опций и позволяет перевернуть любое приложение, даже если оно изначально не поддерживает смену режима отображения. Кроме того, оно позволяет обходить стандартные настройки поворота экрана и запрещать приложениям менять интерфейс.
Rotation Manager позволяет выбрать, в какой ориентации экрана будет работать то или иное приложение: ландшафтной, портретной или по выбору системы (в том числе в зависимости от того, как вы держите устройство). Приложение постоянно работает в фоновом режиме, однако, по словам разработчиков, почти не потребляет оперативную память.
Orientation Manager более бережно относится к системным ресурсам — вы можете запретить этому приложению запускаться с загрузкой операционной системы. Когда оно запущено, на экране появляется миниатюрная кнопка, нажатие на которую позволяет форсированно изменить ориентацию любого запущенного приложения. Цвет кнопки можно выбрать в настройках.
С помощью Rotation Control можно запретить выбранным приложениям менять ориентацию интерфейса, активировать авто-поворот, при котором ориентация меняется в зависимости от того, как вы держите устройство, или зафиксировать определенную ориентацию: только портретная или только ландшафтная.
Screen Rotation Controller уведомляет вас, когда какое-либо приложение пытается сменить ориентацию экрана и позволяет разрешить или запретить ему сделать это. Кроме того, с его помощью вы можете форсированно поменять ориентацию любого приложения вручную.
Источник
Повороты экрана в Android без боли
Важно!
Изначально в статье была реализация с ошибкой. Ошибку исправил, статью немного поправил.
Предисловие
Истинное понимание проблем каждой платформы приходит после того, как попробуешь писать под другую платформу / на другом языке. И вот как раз после того, как я познакомился с разработкой под iOS, я задумался над тем, насколько ужасна реализация поворотов экрана в Android. С того момента я думал над решением данной проблемы. Попутно я начал использовать реактивное программирование везде, где только можно и уже даже не представляю как писать приложения по-другому.
И вот я узнал про последнюю недостающую деталь — Data Binding. Как-то эта библиотека прошла мимо меня в свое время, да и все статьи, что я читал (что на русском, что на английском) рассказывали не совсем про то, что мне было необходимо. И вот сейчас я хочу рассказать про реализацию приложения, когда можно будет забыть про повороты экранов вообще, все данные будут сохраняться без нашего прямого вмешательства для каждого активити.
Когда начались проблемы?
По настоящему остро я почувствовал проблему, когда в одном проекте у меня получился экран на 1500 строк xml, по дизайну и ТЗ там было целая куча различных полей, которые становились видимыми при разных условиях. Получилось 15 различных layout’ов, каждый из которых мог быть видимым или нет. Плюс к этому была еще куча различных объектов, значения которых влияют на вьюху. Можете представить уровень проблем в момент поворота экрана.
Возможное решение
Сразу оговорюсь, я против фанатичного следования заветам какого-либо подхода, я пытаюсь делать универсальные и надежные решения, несмотря на то, как это смотрится с точки зрения какого-либо паттерна.
Я назову это реактивным MVVM. Абсолютно любой экран можно представить в виде объекта: TextView — параметр String, видимость объекта или ProgressBar’а — параметр Boolean и т.д… А так же абсолютно любое действие можно представить в виде Observable: нажатие кнопки, ввод текста в EditText и т.п…
Вот тут я советую остановиться и прочитать несколько статей про Data Binding, если еще не знакомы с этой библиотекой, благо, на хабре их полно.
Да начнется магия
Перед тем как начать создавать нашу активити, создадим базовые классы для активити и ViewModel’ли, где и будет происходить вся магия.
Update!
После общения в комментариях, осознал свою ошибку. Суть в том, что в моей первой реализации ничего не сериализуется, но все работает при поворотах экрана, да даже при сворачивании, разворачивании экрана. В комментариях ниже обязательно почитайте почему так происходит. Ну а я исправлю код и поправлю комментарии к нему.
Для начала, напишем базовую ViewModel:
Я уже говорил, что все что угодно можно представить как Observable? И библиотека RxBinding отлично это делает, но вот беда, мы работает не напрямую с объектами, типа EditText, а с параметрами типа ObservableField. Что бы радоваться жизни и дальше, нам необходимо написать функцию, которая будет делать из ObservableField необходимый нам Observable RxJava2:
Тут все просто, передаем на вход ObservableField и получаем Observable RxJava2. Именно для этого мы наследуем базовый класс от BaseObservable. Добавим этот метод в наш базовый класс.
Теперь напишем базовый класс для активити:
Я постарался подробно прокомментировать код, но заострю внимание на нескольких вещах.
Активити, при повороте экрана всегда уничтожается. Тогда, при восстановлении снова вызывается метод onCreate. Вот как раз в методе onCreate нам и нужно восстанавливать данные, предварительно проверив, сохраняли ли мы какие-либо данные. Сохранение данных происходит в методе onSaveInstanceState.
При повороте экрана нас интересует порядок вызовов методов, а он такой (то, что интересует нас):
1) onDestroy
2) onSaveInstanceState
Что бы не сохранять уже не нужные данные мы добавили проверку:
Дело в том, что метод isFinishing вернет true только если мы явно вызвали метод finish() в активити, либо же ОС сама уничтожила активити из-за нехватки памяти. В этих случаях нам нет необходимости сохранять данные.
Реализация приложения
Представим условную задачу: нам необходимо сделать экран, где будет 1 EditText, 1 TextView и 1 кнопка. Кнопка не должна быть кликабельной до тех пор, пока пользователь не введет в EditText цифру 7. Сама же кнопка будет считать количество нажатий на нее, отображая их через TextView.
Update!
Пишем нашу ViewModel:
Update
Вот тут и и были самые большие проблемы. Все работало и при старой реализации, ровно до того момента, пока в настройках разработчика не включить параметр «Don’t keep activities».
Что бы все работало как надо, необходимо реализовывать интерфейс Parcelable для ViewModel. По поводу реализации ничего писать не буду, только уточню еще 1 момент:
Данные-то мы возвращаем, а вот Observable мы теряем. Поэтому пришлось выводить в отдельный метод и вызывать его во всех конструкторах. Это очень быстрое решение проблемы, не было времени подумать лучше, нужно было было указать на ошибку. Если у кого-то есть идеи как реализовать это лучше, пожалуйста, поделитесь.
Теперь напишем для этой модели view:
Ну и теперь, мы пишем нашу активити:
Запускаем приложение. Кнопка не кликабельна, счетчик показывает 0. Вводим цифру 7, вертим телефон как хотим, через 2 секунды, в любом случае кнопка становится активной, тыкаем на кнопку и счетчик растет. Стираем цифру, вертим телефоном снова — кнопка все равно через 2 секунды будет не кликабельна, а счетчик не сбросится.
Все, мы получили реализацию безболезненного поворота экрана без потери данных. При этом будут сохранены не только ObservableField и тому подобные, но так же и объекты, массивы и простые параметры, типа int.
Источник
Как сделать объёмные обои с эффектом движения на Samsung.
Теперь, в эпоху «коммуникаций», все новые и интересные «находки» после появления у одного производителя смартфонов, как правило, вскоре появляются и у других. Так случилось и с parallax эффектом, который первыми реализовала компания Apple — лидер мировых мобильных новшеств, в операционной системе iOS 7 для своих гаджетов. Ну а теперь этот эффект можно включить и для обоев на смартфонах компании Samsung.
Паралла́кс (с греч. παραλλάξ, от παραλλαγή — «смена, чередование») — изменение видимого положения объекта относительно удалённого фона в зависимости от положения наблюдателя (из энциклопедии).
После включения эффекта параллакс рабочий стол становится объёмным — иконки теперь живут как-бы не на поверхности обоев, а над ними. Это видно если повернуть или наклонить смартфон в любом направлении — значки и иконки на экране начинают двигаться, что даёт ощущение глубины пространства. Особенно этот эффект хорош на обоях звездного неба имеющий много мелких деталей — на его фоне хорошо заметно «движение» иконок в пространстве космоса.
А как установить обои с эффектом движения на смартфонах Samsung Galaxy?
Очень даже просто. Причём для этого не нужны какие-то специальные обои. Этот эффект можно реализовать и на ваших фотографиях, которые вы тоже можете установить в качестве обоев.
На смартфонах Самсунг это осуществляется включением службы «Эффект движения» при установке обоев на Главный экран смартфона.
Далее мы опишем, как включить эффект параллакс при установке любых обоев на примере редакционного смартфона Samsung Galaxy A50 с ОС Android 9 Pie.
Второй способ: можно установить готовые обои с параллакс эффектом скачав приложение с Google Play Маркет. Для перехода к статье «Как установить parallax обои на экран смартфона Samsung» нажмите здесь.
Инструкция по установке обоев с эффектом движения на смартфонах Samsung.
1. Сейчас на смартфоне установлена основная тема по умолчанию (Default), а на её Главном экране находятся обои в зелёных тонах «По умолчанию 3».
Мы решили в качестве примера показать как включить эффект движения на уже установленных обоях. В дальнейшем вы сможете включить этот эффект и при установке новых обоев следуя данной инструкции.
В самом начале нужно запустить приложение «Galaxy Themes» с экрана приложений.
Скрин №1 – нажать на значок «Galaxy Themes».
2. Далее на главной странице «Galaxy Themes» нужно открыть раздел настроек. Для этого нужно нажать на кнопку «Три линии» вверху экрана, или вторым способом: свайпом от левого края экрана вправо открыть раздел настроек.
В меню настроек нужно выбрать пункт «Мои материалы».
3. В разделе «Мои материалы» нужно войти в подраздел «Обои».
Скрин №4 – коснуться названия подраздела «Обои».
4. Теперь мы находимся в подразделе «Обои», который развёрнут на весь экран. Мы знаем, что сейчас активирован вариант обоев «По умолчанию 3», и мы хотим включить эффект движения именно на этих, уже установленных обоях. Поэтому нажимаем на эти «зелёные» обои «По умолчанию 3».
После этого появится небольшое окно с вопросом «Установить как обои», где нужно нажать на позицию «Главный экран».
Скрин №5 – нажать на вариант обоев «По умолчанию 3». Скрин №6 – нажать на позицию «Главный экран».
5. Далее на экране будет выведен предварительный вид Главного экрана с выбранными нами обоями «По умолчанию 3». Вот здесь мы и должны включить функцию «Эффект движения». Для этого нужно нажать на пустой кружок возле слов «Эффект движения».
После этого пустой кружок окрасится в синий цвет и в нём появится значок «Галочка». Так мы подключили параллакс эффект.
Но чтобы окончательно установить обои нужно ещё нажать на кнопку «Установить как обои».
Скрин №7 – отметить кружок в строчке «Эффект движения». Скрин №8 — нажать на кнопку «Установить как обои».
6. Теперь на Главном экране установлены обои зелёного тона с эффектом движения. При малейшем повороте смартфона в ваших руках вы заметите легкое движение иконок по экрану, как будто они начали перемещаться по воздуху над зелёным фоном экрана.
Очень красиво и не навязчиво.
Скрин №9 – вид Главного экрана с зелёным фоном «По умолчанию 3».
Только не смотрите долго на этот эффект – у вас может закружиться голова!
Источник