Serviceを利用してアプリをオーバーレイ表示する

2014年2月25日開発

オーバーレイ表示

androidアプリは基本的に1つのアプリが全画面で表示されます。

タブレットなど大きい画面でアプリを使いたいときは、全画面表示がわずらわしく感じられることも。

windowsのようにマルチアプリ化したいこともあると思います。

そんなときに、Serviceを利用します。

Serviceを利用することで、常駐するアプリを作ったり、オーバーレイ表示するアプリを作ることができます。

参考にしたのは下のサイトです。

システムオーバーレイの作成 (フローティングアプリの実装)

詳しい説明が載っているので、そのまま作っていけばオーバーレイ表示は簡単にできます。

オーバーレイ表示を応用すると、ブラウザを見ながらメモをすることもできるようになります。

オーバーレイ表示でメモ
オーバーレイ表示でメモ

まだ実装途中ですが、このように使うことができます。

開発用メモ

MainActivityではなく、Service側からServiceを終了させたい場合は、

LayerService.this.stopSelf(startID);

のようにstartIDを指定して自分自身をstopさせる。

Serviceがしっかりと終了していない場合は、予期しない場面でServiceが動き始める可能性がある。

startIDを指定せずにstopSelfをしていたら、Serviceが何度もよみがえり少しはまりました。

意外と時間がかかったのが、ウィンドウのサイズ調整を可能にすることと、自由に移動できるようにするところです。

最初はgetX()とgetRawX()の違いが分からずに悩みました。

この辺はまた他の記事で触れていこうと思います。

2014年2月25日開発android,アプリ作成,オーバーレイ

Posted by ラン