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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android sqlite returned: error code = 14, msg = cannot open file at source line 25467 http://www.cyberforum.ru/android-dev/thread934104.html
sqlite returned: error code = 14, msg = cannot open file at source line 25467 Что это такое и как от этого избавиться, пере открывал все посты в интернете - ничего не понял.
Программирование Android Поменять местами два значения из столбца SQLite Доброго времени суток . Есть таблица с 2 столбами ( id,text) .Нужно поменять местами значения text из разных строк. Было id text 1 asd 2 som 3 lol стало ( 1 и 3... http://www.cyberforum.ru/android-dev/thread933946.html
Перехват входящего sms Программирование Android
Всем привет. Недавно начал изучение Android. Задача такая: при получении SMS выводить на экран toast. Класс. package ru.goryachev.MobileInv; import android.content.BroadcastReceiver; import...
Почему WebView не работает Программирование Android
Скажите в чём дело не так вот прикрепил скриншот:
Программирование Android Можно снимать видео в то время как аудио файл включается? http://www.cyberforum.ru/android-dev/thread933828.html
Можно снимать видео в то время как аудио файл включается? А также можно ли переписать аудио звука и видео, а также спасти?
Программирование Android Прочитать файл внутри проекта Android Требуется внутри проекта из любой папки достать InputStream файла. Способ с использованием assets не подходит, метод getAssets() использовать нельзя, ищу альтернативу. подробнее

Показать сообщение отдельно
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42

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

06.08.2013, 08:40. Просмотров 889. Ответов 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);
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru