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

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

Войти
Регистрация
Восстановить пароль
 
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
#1

Перетаскивание некого View поверх всех приложений - Программирование Android

06.08.2013, 08:40. Просмотров 868. Ответов 0
Метки нет (Все метки)

В общем, хотят тут от меня такую штуку, а я даже не знаю, возможно ли такое сделать вообще.

Суть такова: Под таскбаром висит некая иконка, когда запущен сервис. Делаем по ней долгое нажатие - она становится подвижной. Двигаем к центру экрана - открывается само приложение.

Сейчас мне удалось повесить иконку и научить ее реагировать на нажатия.

Проблемы в следующем: - Если использовать тип окна TYPE_SYSTEM_ALERT, то оно полюбому берет на себя все эветы. Как пропускать нажатия насквозь - непонятно. - Если использовать TYPE_SYSTEM_OVERLAY, то он вообще не умеет ловить эвенты и все пропускает насквозь.

Как думаете, реально ли вообще что-то такое сделать? Сколько гуглил проги, которые работаю поверх всего, они обычно или некликабельные таблички с системной инфой (часы, системные показатели) или мелкие приложения в окошках.

Сейчас в сервисе вызываю окошко следующим образом:

Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
private void Initialize(){
        
        this.frameLayout = new FrameLayout(this);
        this.icon = new Button(this);
        this.icon.setClickable(true);
        this.icon.setBackgroundResource(R.drawable.ic_action_status_bar_ligth);
        this.icon.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Log.i("Log_tag", "Нажатие");
                
            }
        });
        
        this.icon.setLongClickable(true);
        this.icon.setOnLongClickListener(new OnLongClickListener() {
            
            @Override
            public boolean onLongClick(View v) {
                // TODO Auto-generated method stub
                showApp();
                Log.i("Log_tag", "Длинное нажатие");
                return true;
            }
        });
        
        frameLayout.addView(this.icon);
        
        this.WM = ((WindowManager)getSystemService("window"));
        
        WindowManager.LayoutParams localLayoutParams = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
                40,
                PixelFormat.TRANSLUCENT
                );
        localLayoutParams.gravity = 51;
        
        this.WM.addView(this.frameLayout, localLayoutParams);
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2013, 08:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перетаскивание некого View поверх всех приложений (Программирование Android):

View поверх всех окон - Программирование Android
Как сделать приложение, как это - https://play.google.com/store/apps/details?id=com.iwobanas.screenrecorder.pro Пробовал в манифесте...

Андроид анимация поверх всех view - Программирование Android
Всем добрый день. Перерыл весь гугл но так и не смог найти ответ на вопрос. Проблема такая - корневой LinearLayout нашпигован большим...

Поставить View поверх другой и отключить touch - Программирование Android
Здравствуйте. Хочу реализовать следующее. Есть список на каждом итеме есть кнопки. Нажимаю на кнопку и поверх списка появляется View с...

Плавающее окно поверх домашнего экрана и других приложений - Программирование Android
Здравствуйте! Как сделать плавающее окно поверх других приложений и домашнего экрана и меню, т.е. как в приложении "Калькулятор ++"?...

Как сделать вьюшку, чтобы она была поверх любых приложений? - Программирование Android
Например, как это сделано в ГеймХацкере. Нигде не могу нарыть. Говорят про AlertDialog, но это совсем не то, что мне нужно..

В чем разница (View view) и (View v) - Программирование Android
Я только начинаю изучать программирование под андроид (до этого вобще программированием не занимался), по гуглу удалось найти только...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2013, 08:40
Привет! Вот еще темы с ответами:

Почему сервис выполняется с ошибкой (вывод картинки поверх всех окон) - Программирование Android
Здравствуйте. Мне нужно реализовать вывод картинки поверх всех окон (в android 4.4.2 KitKat), по примеру этого -...

Где пообщаться насчёт способов продажи приложений, соблюдения всех тонкостей? - Программирование Android
Подходит время публикации своих приложений, хочется пообщаться с людьми, которые давно и успешно продают приложения (или распространяют...

Как перебрать все дочерние элементы некого Layout - Программирование Android
Всем добрый день. Вопрос задан в названии темы: имеется основной слой (LinearLayout), в нем несколько других слоёв. Вот с ними мне и...

Public void onClick(View view) - Программирование Android
Не работает public void onClick(View view) :wall: public class MainActivity extends AppCompatActivity implements View.OnClickListener...


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

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

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