Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 100, средняя оценка - 4.73
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
#1

Запрет поворота экрана после создания активити - Программирование Android

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

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

setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

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

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

Как это сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2012, 12:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запрет поворота экрана после создания активити (Программирование Android):

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

После поворота экрана view формы пропадают - Программирование Android
на главной активити в xml создано RadioGroup. на главной активити в методе onCreate есть такая строчка rGroup = (RadioGroup)...

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

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

Обработка поворота экрана. Сохранение введенной информации - Программирование Android
В приложении имеется n полей для ввода текста. Как правильно сохранять их количество введенную в них информацию при повороте экрана? ...

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

21
V0v1k
1159 / 983 / 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
1159 / 983 / 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
1159 / 983 / 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
1159 / 983 / 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
1159 / 983 / 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
1159 / 983 / 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
1159 / 983 / 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
31.10.2012, 17:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 17:23
Привет! Вот еще темы с ответами:

Мигает активити после сплешскрина - Программирование Android
Есть сплешскрин взятый с какого то сайта, он работает отлично public class SplashScreen extends Activity { private static String...

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

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки &quot;войти&quot; в отдельном классе &quot;сокетсервер&quot;(+в отдельном потоке)...

Запрет выполнения onCreate при повороте экрана - Программирование Android
Здравствуйте уважаемые специалисты! У меня такой вопрос: в моей игре есть вопросы и варианты ответов как в игре (кто хочет стать...


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

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

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