Ninazu
@Ninazu

Как отрисовать таймер поверх других приложений?

Как сделать прозрачное приложение, которое не будет реагировать на события ввода, а передавать их приложению под ним? Либо это нужно делать через сервис который будет рисовать поверх других приложений?

Задача отрисовать таймер на переднем плане, поверх всех других приложений.
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
Тут полюбому копать в сторону оверлея.

Только для твоего приложения нужен будет дополнительный пермишен .)
uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />


public class OverlayService extends Service {

    @Override
    public void onCreate() {
        super.onCreate();

        WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

        View overlay = /*  Твоя вью сдесь*/;

        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
            PixelFormat.TRANSLUCENT);
        windowManager.addView(overlay , params);
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }   
}


Не забудь добавить в манифест
service android:name=".OverlayService" >


и стартануть его
startService(new Intent(this, OverlayService.class));


Отключить тачи можно через
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы