Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.98/84: Рейтинг темы: голосов - 84, средняя оценка - 4.98
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
1

Запрет поворота экрана после создания активити

31.10.2012, 12:19. Просмотров 15610. Ответов 22
Метки нет (Все метки)

Как сделать сабж?
Если в onCreate вызываю :

setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

И если текущая ориентация не портрет - происходит повторный вызов onCreate, с другой ориентацией

Мне требуется запуск в ориентации behind, и блокировка изменения поворота.

Как это сделать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2012, 12:19
Ответы с готовыми решениями:

Запрет поворота экрана
Здравствуйте. Как лучше всего запретить поворот экрана, но так, чтобы на...

После поворота экрана view формы пропадают
на главной активити в xml создано RadioGroup. на главной активити в методе...

После поворота TextView занимает столько же места как и до поворота
собственно как поворачивать средствами xml или в коде я знаю. Проблема в...

Запуск в ландшафтном режиме и запрет поворота. Как сделать?
Добрый день. Есть приложение с кучей активити. Что сделать, чтобы это...

Обработка поворота экрана. Сохранение введенной информации
В приложении имеется n полей для ввода текста. Как правильно сохранять их...

22
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 12:56 2
запретить до создания активити, то есть в манифесте.
0
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 13:02  [ТС] 3
Цитата Сообщение от V0v1k Посмотреть сообщение
запретить до создания активити, то есть в манифесте.
и что там написать?
портрет / ландшафт - не катит. нужен запуск в разных вариантах.
behind - запускается правильно, но потом начинает крутиться. (это надо запретить)
nosensor - запускается в портрете. не гуд.
sensor - ну запустится правильно. а потом все равно заблокировать надо. как?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 14:00 4
нужно задать нужную ориентацию и в манифесте и в активити.
0
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 14:13  [ТС] 5
Как?
Мне нужная - behind
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 14:31 6
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_BEHIND);
0
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 14:46  [ТС] 7
Цитата Сообщение от V0v1k Посмотреть сообщение
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_BEHIND);
Супер!!!

но я же уже писал:
behind - запускается правильно, но потом начинает крутиться. (это надо запретить)
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 15:53 8
крутится несмотря на вызов setRequestedOrientation?
0
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 16:07  [ТС] 9
Цитата Сообщение от V0v1k Посмотреть сообщение
крутится несмотря на вызов setRequestedOrientation?
да, крутится

Вообще проблема в том, что приложение падает после нескольких поворотов.
в теме приложения указана тема с бекграундом (200кб).

<style name="MyTheme" parent="android:Theme.NoTitleBar">
<item name="android:windowBackground">@drawable/background</item>
</style>


и с некоторых пор (на 2.х - вроде работало, на 4.0 - падает) после нескольких поворотов приложение стало падать:

Out of memory on a 16384016-byte allocation.

вроде не очень много.
Если строку с бекграундом убрать - ничего не падает.
Для некоторых активити решил проблему созданием двух view, инициализуемых единожды. но для всех такой изврат лепить не хочется. как победить проблему памяти - не знаю. решил запретить вращение когда не попадя.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 16:22 10
когда я задаю ориентацию в манифесте, у меня ниче не крутиться...

Добавлено через 57 секунд
Цитата Сообщение от Rebelx Посмотреть сообщение
как победить проблему памяти
использовать меньше памяти.
0
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 16:31  [ТС] 11
Цитата Сообщение от V0v1k Посмотреть сообщение
когда я задаю ориентацию в манифесте, у меня ниче не крутиться...

Добавлено через 57 секунд

использовать меньше памяти.
какую задаешь?

Добавлено через 2 минуты
Цитата Сообщение от Rebelx Посмотреть сообщение
использовать меньше памяти.
Как?
Весь код:
Java
1
2
3
4
5
6
7
8
9
    public void onCreate(Bundle paramBundle) {
        super.onCreate(paramBundle);
        
        setContentView(R.layout.rules);
        WebView localWebView = (WebView) findViewById(R.id.webViewRules);
        localWebView.setBackgroundColor(Color.TRANSPARENT);
        localWebView.loadUrl("file:///android_asset/rules/rules.html");
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_BEHIND);
    }
выпадает на setContentView(R.layout.rules);
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 16:47 12
пробовал задавать только в манифесте behind, portrait, landscape. ниче не вращается.

Цитата Сообщение от Rebelx Посмотреть сообщение
выпадает на setContentView(R.layout.rules);
что выпадает?
setRequestedOrientation вроде нужно вызывать прежде setContentView.

Цитата Сообщение от Rebelx Посмотреть сообщение
Как?
не использовать то, что занимает много памяти. я так понимаю на фон ставишь тяжелую картинку.
0
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 17:16  [ТС] 13
Цитата Сообщение от V0v1k Посмотреть сообщение
не использовать то, что занимает много памяти. я так понимаю на фон ставишь тяжелую картинку.
200Кб. меньше уже никак. и так 32 цвета всего

Добавлено через 3 минуты
Цитата Сообщение от V0v1k Посмотреть сообщение
setRequestedOrientation вроде нужно вызывать прежде setContentView.
не важно. крутится

Добавлено через 19 минут
Цитата Сообщение от Rebelx Посмотреть сообщение
200Кб. меньше уже никак. и так 32 цвета всего
уменьшил до 100КБ - не изменилось
уменьшил до 200 байт - перестало падать. но такой фон не круто
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 17:17 14
покеж как в манифесте задаешь ориентацию.

Добавлено через 40 секунд
Цитата Сообщение от Rebelx Посмотреть сообщение
уменьшил до 200 байт - перестало падать. но такой фон не круто
приглядись к другим ресурсам, может что-то другое занимает несколько мегабайт.
0
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 17:23  [ТС] 15
Цитата Сообщение от V0v1k Посмотреть сообщение
приглядись к другим ресурсам, может что-то другое занимает несколько мегабайт.
нет ничего больше
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >




<WebView
android:id="@+id/webViewRules"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:scrollbars="none" />

</LinearLayout>

но фон - во всех активити одинаковый. и все падают. если убрать фон - все не падают.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 17:36 16
очень странно, лимит вроде 5мб если не память не подводит.
0
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 17:44  [ТС] 17
Цитата Сообщение от V0v1k Посмотреть сообщение
очень странно, лимит вроде 5мб если не память не подводит.
можно с этого места подробнее? где можно прочитать про это?
чет слишком мало. с учетом наличия памяти гигабайтами.

у меня на эмуляторе и раньше такая проблема была
на теле (SGN7000) - нет. проект был заморожен на несколько месяцев.
в процессе обновил тело до 4.0.
вернулся к проекту - работать на теле перестало.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 19:51 18
это в каком именно девайсе RAM больше гигабайта?
не помню где читал, вот здесь есть инфа про лимит в 16/24 mb на апликейшен - http://blog.gorges.us/2010/07/develo...-memory-limit/
можете еще погуглить.
0
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
01.11.2012, 10:05  [ТС] 19
Цитата Сообщение от V0v1k Посмотреть сообщение
это в каком именно девайсе RAM больше гигабайта?
ну например:
http://market.yandex.ru/model-spec.xml?modelid=8440117&hid=91491
а у меня - первый, там один гиг
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.11.2012, 12:58 20
один из первых в котором больше гига?)
0
01.11.2012, 12:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2012, 12:58

Если поменять ориентацию экрана или SurfaceView перекроет другой активити, то приложение завершается аварийно
Здравствуйте уважаемые программисты! Недавно начал изучать проигрывание видео...

Мигает активити после сплешскрина
Есть сплешскрин взятый с какого то сайта, он работает отлично public class...

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити
Сделал меню в виде ListView. При клике на меню запускаются активити. На...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru