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

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

Войти
Регистрация
Восстановить пароль
 
alexjj09
2 / 2 / 0
Регистрация: 04.05.2013
Сообщений: 61
#1

Кастомный View всегда оказывается слева при landscape ориентации - Android

17.02.2015, 14:53. Просмотров 304. Ответов 6
Метки нет (Все метки)

Имеется Activity в которой есть кастомный View (В нем с помощью Canvas рисуется картинка).
XML
1
2
3
4
5
6
7
8
9
10
<RelativeLayout
        android:id="@+id/previewParent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
 
        <com.xxxx.xxx.image
            android:id="@+id/previewScreen"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </RelativeLayout>
На изменении ориентации
Java
1
2
3
4
 RelativeLayout.LayoutParams params3 = (RelativeLayout.LayoutParams) prParent.getLayoutParams();
 
            params3.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
            prParent.setLayoutParams(params3);
Однако картинка всегда остается слева.

Нужно чтобы она была в центре.
Скриншот прикрепил.

Заранее огромное спасибо за помощь!
Миниатюры
Кастомный View всегда оказывается слева при landscape ориентации  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2015, 14:53     Кастомный View всегда оказывается слева при landscape ориентации
Посмотрите здесь:

SurfaceView при изменении ориентации экрана перегружается Android
Android Пропажа данных при смене ориентации
Android Обнуляется массив при смене ориентации устройства
Android Потеря вывода при смене ориентации экрана
Android Бесшовное проигрывание видео при смене ориентации
Выбрасывает из приложения при смене ориентации экрана Android
Android Перезагрузка списка при смене ориентации приложения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FreakMurderer
-58 / 10 / 2
Регистрация: 21.11.2013
Сообщений: 85
17.02.2015, 15:04     Кастомный View всегда оказывается слева при landscape ориентации #2
Нужно проверить , срабатывает ли твой код вообще при изменении ориентации .

А вообще, правильней поместить новый лейаут в папку layout-land (альбомная ориентация)
alexjj09
2 / 2 / 0
Регистрация: 04.05.2013
Сообщений: 61
17.02.2015, 17:52  [ТС]     Кастомный View всегда оказывается слева при landscape ориентации #3
Срабатывает точно, потому что кроме этого view еще кнопки и бар справа меняют ориентацию, расположение и т.д.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
17.02.2015, 19:01     Кастомный View всегда оказывается слева при landscape ориентации #4
Послушайте, что говорит FreakMurderer,
Цитата Сообщение от FreakMurderer Посмотреть сообщение
А вообще, правильней поместить новый лейаут в папку layout-land (альбомная ориентация)
Так будет правильно
alexjj09
2 / 2 / 0
Регистрация: 04.05.2013
Сообщений: 61
18.02.2015, 11:53  [ТС]     Кастомный View всегда оказывается слева при landscape ориентации #5
никаким образом это не влияет я попробовал, чтобы наверняка - результат тот же. В layout view распологается верно, а канвас на устройстве прибивается влево.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
18.02.2015, 17:33     Кастомный View всегда оказывается слева при landscape ориентации #6
покажите xml для layout-land
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2015, 20:10     Кастомный View всегда оказывается слева при landscape ориентации
Еще ссылки по теме:

Потеря потока при смене ориентации Android
Android Задний фон при смене ориентации экрана
Android При смене ориентации экрана накладываются фрагменты
При любой ориентации экрана табы были всегда под ActionBar Android
Не отображать SplashScreen при смене ориентации экрана Android

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

Или воспользуйтесь поиском по форуму:
alexjj09
2 / 2 / 0
Регистрация: 04.05.2013
Сообщений: 61
18.02.2015, 20:10  [ТС]     Кастомный View всегда оказывается слева при landscape ориентации #7
Спасибо, уже нашел решение.
Java
1
2
3
4
 RelativeLayout.LayoutParams params3 = (RelativeLayout.LayoutParams) prParent.getLayoutParams();
 
            params3.setMargins(getWindowManager().getDefaultDisplay().getWidth() / 2 - prParent.getWidth()/2, 0, 0, 0);
            prParent.setLayoutParams(params3);
Тупо, зато работает
Yandex
Объявления
18.02.2015, 20:10     Кастомный View всегда оказывается слева при landscape ориентации
Ответ Создать тему
Опции темы

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