携帯電話のアプリのすべての画面にフローティング レイアウトを表示したいのですが、このレイアウトの横で実行されている他のアプリに加えて、このレイアウトでアクションを実行でき、独自のアクションとイベントを受け取ることができます
そして、ここに私が望むことをするアプリがあります https://play.google.com/store/apps/details?id=com.ninja.sms
これが私が取り組んできたアプローチです: WindowManager を使用してレイアウトを描画し、サービスを使用してこのレイアウトを管理しました。
次のライブラリhttps://github.com/t0mm13b/TouchSoftlyを使用しました が、いくつか問題があります。2. サービスを起動したアクティビティが強制終了されると、レイアウトが消えます。
そのため、次のスニペットでいくつかのカスタマイズを行いました
_layOutParams = new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
_layOutParams = new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
_layOutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
_layOutParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
if (_layOutParams != null) {
Log.d(TAG, "onCreate() - Got _layOutParams!");
_layOutParams.gravity = Gravity.RIGHT | Gravity.TOP;
} else
Log.d(TAG, "onCreate() - _layOutParams is null! :(");
_hudPageView = _layOutInflater.inflate(R.layout.service_hudpageview, null);
結果は次のとおりです。レイアウトは既に描画されており、タッチ イベントを取得できますが、レイアウトが画面に表示されている間、ホーム、戻る、および最近のアプリ ボタンは機能せず、どのアプリにも影響しません。
だからまだ私が望むものを達成していません。
そして、ここに私が取り組んでいるソースコードとリポジトリがあるので、私のソースコードを確認できます https://github.com/mmelsabry/FloatingLayout
ここに別の質問があることは知っています Androidランチャーのフローティングウィジェット/オーバーレイ
しかし、それは役に立ちません