Android浮上ウィンドウの実現
2195 ワード
最近流量統計をしていますが、懸濁窓がサンプルポイントになります.そこで下懸濁窓の実現を少し検討した:効果図は以下の通り:透明な背景を作った.の懸濁ウィンドウはメインインタフェースに現れる必要があります.APPが閉じられても、懸濁ウィンドウは1つのサービスで制御する必要があります. 懸濁ウィンドウが他のアプリケーションよりも高い以上、懸濁ウィンドウを制御するのはシステムクラスであり、WindowMangerは懸濁ウィンドウの主な実現クラスである.WindowManager:ウィンドウマネージャ、ウィンドウにコントロールを追加および削除するには、(1)まずWindowManagerオブジェクトを取得し、
(2)フローティングコントロールのスタイルを設定し、WindowManagerオブジェクト、コントロールのスタイルに対して専用のクラスをカプセル化する:WindowManager.LayoutParams、重要な属性と方法:
LayoutParams.x設定コントロールは画面のx軸にデフォルト設定されています.y設定コントロールは画面のy軸にデフォルト設定されています.画面上のコントロールを設定するフォーム設定コントロールは画面にあるwidth設定コントロールの幅…詳細はAPIドキュメントを参照
次のようになります.
3、カスタムビューと上で定義したwmParamsスタイルをウィンドウに追加し、懸濁窓として使用する
mWindowManager.removeViewImmediate (View view) “`
それ以来、簡単にコントロールを携帯電話に浮かべることができます.この懸濁ウィンドウはすべてより高くなります.どんなインタフェースでも現れます.「インテリジェント化」は比較できません.つまり、携帯電話のメインインタフェース(一級インタフェース)でしか表示されません.他のときは表示されません.どうすればいいですか.
考え方は:私は懸濁で携帯電話の流量の更新をしているので、更新する時、私は今携帯電話が表示しているインターフェースが主なインターフェースであるかどうかを判断して、そうでなければ、私は隠れて、いいです.
WindowManager mWindowManager=
getApplication().getSystemService(getApplication().WINDOW_SERVICE);
(2)フローティングコントロールのスタイルを設定し、WindowManagerオブジェクト、コントロールのスタイルに対して専用のクラスをカプセル化する:WindowManager.LayoutParams、重要な属性と方法:
LayoutParams.x設定コントロールは画面のx軸にデフォルト設定されています.y設定コントロールは画面のy軸にデフォルト設定されています.画面上のコントロールを設定するフォーム設定コントロールは画面にあるwidth設定コントロールの幅…詳細はAPIドキュメントを参照
次のようになります.
// param
WindowManager.LayoutParam wmParams=new WindowManager.LayoutParams();
//
wmParams.gravity = Gravity.LEFT | Gravity.TOP;
// , x、y
wmParams.x = 0;
wmParams.y = 0;
//
wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
3、カスタムビューと上で定義したwmParamsスタイルをウィンドウに追加し、懸濁窓として使用する
LayoutInflater inflater = LayoutInflater.from(getApplication());
//
LinearLayout mFloatLayout = (LinearLayout) inflater.inflate(R.layout.flow_window, null);
// mFloatLayout
mWindowManager.addView(mFloatLayout, wmParams);
4、
mWindowManager.removeViewImmediate (View view) “`
それ以来、簡単にコントロールを携帯電話に浮かべることができます.この懸濁ウィンドウはすべてより高くなります.どんなインタフェースでも現れます.「インテリジェント化」は比較できません.つまり、携帯電話のメインインタフェース(一級インタフェース)でしか表示されません.他のときは表示されません.どうすればいいですか.
考え方は:私は懸濁で携帯電話の流量の更新をしているので、更新する時、私は今携帯電話が表示しているインターフェースが主なインターフェースであるかどうかを判断して、そうでなければ、私は隠れて、いいです.