Serviceを利用してアプリをオーバーレイ表示する
オーバーレイ表示
androidアプリは基本的に1つのアプリが全画面で表示されます。
タブレットなど大きい画面でアプリを使いたいときは、全画面表示がわずらわしく感じられることも。
windowsのようにマルチアプリ化したいこともあると思います。
そんなときに、Serviceを利用します。
Serviceを利用することで、常駐するアプリを作ったり、オーバーレイ表示するアプリを作ることができます。
参考にしたのは下のサイトです。
詳しい説明が載っているので、そのまま作っていけばオーバーレイ表示は簡単にできます。
オーバーレイ表示を応用すると、ブラウザを見ながらメモをすることもできるようになります。
まだ実装途中ですが、このように使うことができます。
開発用メモ
MainActivityではなく、Service側からServiceを終了させたい場合は、
LayerService.this.stopSelf(startID);
のようにstartIDを指定して自分自身をstopさせる。
Serviceがしっかりと終了していない場合は、予期しない場面でServiceが動き始める可能性がある。
startIDを指定せずにstopSelfをしていたら、Serviceが何度もよみがえり少しはまりました。
意外と時間がかかったのが、ウィンドウのサイズ調整を可能にすることと、自由に移動できるようにするところです。
最初はgetX()とgetRawX()の違いが分からずに悩みました。
この辺はまた他の記事で触れていこうと思います。