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

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

Войти
Регистрация
Восстановить пароль
 
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
#1

Отобразить полноэкранную рамку - Программирование Android

24.10.2014, 11:07. Просмотров 461. Ответов 0
Метки нет (Все метки)

Приветствую!
Сначала небольшая предыстория. Я, вообще-то, системщик, на работе пишу в основном системные вещи на C. Но вот встала задача написать кое-что на Android.
Я работаю в компании, которая, в том числе, выпускает мультимедийные приставки. Одна из наших моделей работает под андроидом. Соответственно, я имею доступ ко всем системным фичам (то бишь, могу вносить изменения и в системные приложения и пользоваться системными пакетами).
Была у меня одна задачка где-то с год назад - добавить в настройки пункт меню "Формат экрана", там реализовать выбор разрешения, частоты обновления и скалинг самой картинки. Всё это я успешно реализовал. Но вот сейчас понадобилось реализовать enhancement - при настройке размера картинки (т.е. масштабировании всего экрана) реализовать рамочку по краям экрана, чтобы пользователь видел, где, собственно, этот край находится. И вот тут у меня затык. Я не достаточно хорошо знаю андроид, чтобы такую штуку сделать. Собственно говоря, я даже не могу нормально сформулировать запрос в гугл. Все запросы, которые я пробовал, либо выводят меня на рисование рамочки вокруг конкретного view (например, вокруг ListView), либо на абсурдное "как убрать красную мигающую рамку". Собственно, хотелось бы сделать что-то вроде этой красной рамки, но, боюсь, она рисуется на слишком глубоком уровне; я мог бы залезть и туда, но что-то совсем не хочется этого делать, если есть решения более простые и укладывающиеся в идеологию андроида.
Сама задача: при попадании фокуса на одну из кнопок "Увеличить" или "Уменьшить" рисовать по периметру экрана рамку (вообще, не суть важно какую именно, это может быть сплошная рамка определённой толщины, стрелки по углам или по серединам сторон экрана и т.д.), при уходе фокуса с этих кнопок - скрывать рамку.
Вопрос: куда копать (пока ничего более конкретного сформулировать не могу, практически не имею исходных данных).
Что приходит в голову: при попадании фокуса на соответствующую кнопку отображать на весь экран *нечто* (активити, диалог или что-то ещё) прозрачное, но с рамкой по краям, не перехватывающее фокус и позволяющее работать с элементами интерфейса под ним, при этом не закрывающееся по кнопке "назад", но закрывающееся при уходе фокуса с кнопок. Не знаю, насколько такое решение костыльное, и осуществимо ли оно в таком виде вообще.
Кроме того, возможно, проще будет перенести функционал "Увеличить"/"Уменьшить" в отдельное активити, а в основном экране настроек сделать кнопку "Перейти к регулировке размера", и по нажатии на неё открывать это активити на весь экран. Тогда рамку можно нарисовать прямо на нём (на крайний случай, просто сделать бэкграундом картинку с нужной рамкой). Это решение видится куда более простым, но хотелось бы всё же обойтись без дополнительных элементов и плавно встроить рамку в уже существующий функционал.

Добавлено через 3 часа 25 минут
Так, я научился отображать полноэкранную прозрачную activity с картинками по краям при переходе фокуса на нужную кнопку. Главная проблема - она отбирает фокус. Как бы его вернуть обратно на кнопку, и при этом не закрыть прозрачную activity, и, кроме того, позволить фокусу гулять по элементам нижней рабочей activity?

Не по теме:

Подозреваю, что никак...

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2014, 11:07     Отобразить полноэкранную рамку
Посмотрите здесь:

Как убрать рамку - Программирование Android
Как убрать рамку вокруг тела , которая остается после создания актера bDef=new BodyDef(); ...

Разместить поверх ImageView рамку - Программирование Android
У меня есть некое изображение, ImageView, которое находится по центру экрана. Мне нужно, поместить по верх этого изображения рамку. Рамка...

Можно ли в SeekBar отставить только ползунок, а рамку убрать? - Программирование Android
Скажите пожалуйста,можно в SeekBare отставить только ползунок,а рамку убрать?

Отобразить таблицу БД - Программирование Android
Всем доброго времени суток! Недавно столкнулся с проблемой, как отобразить таблицу БД, которая содержит в себе 4 столбца. Пытался...

Отобразить целочисленную переменную - Программирование Android
Имею переменную int total, которую хочу отобразить в Edit. После cellsEditor.setText(total); приложение вылетает с...

Как отобразить модель 3D Max? - Программирование Android
Собственно вопрос - есть модель 3d max. Как ее отобразить? с возможностью поворота по любым осям

Как отобразить элементы меню - Программирование Android
Подскажите пожалуйста. Я новичок в андроид-разработке. Пытаюсь создать обычное меню. В MainActivity прописываю код package...

Правильно вырезать и отобразить картинку - Программирование Android
Есть файлик с рожицами. Я его делю на 3 части по горизонтали и 5 частей по вертикали. Но сами рожицы не отцентрированы. Левые прижаты к...

Отобразить одновременно текст и картинку - Программирование Android
Здравствуйте. Хочу создать создать приложение-обучение математики в формате лекций. Исходя из этого, мне нужно каким-то образом объединить...

Как отобразить в WebView сайт - Программирование Android
Сабж

Отобразить местоположение на карте по координатам - Программирование Android
Взял из книжки такой код для отображения местоположения на карте по заданным координатам (например, взял координаты Москвы): ...

OpenGL Как отобразить текст? - Программирование Android
Есть движущаяся камера, нужно нарисовать спрайты первым слоем и тексты. Может есть у кого готовые примеры?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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