Android類似360懸濁ウィンドウ作成(一)
転載先:クリックしてリンクを開く原文:WindowManagerを呼び出し、WindowManagementを設定する.LayoutParamsの関連属性は、WindowManagerのaddViewメソッドによってViewを作成することによって生成されたViewはWindowManagerに基づいている.LayoutParamsは属性が違うので、効果も違います.たとえば、システムのトップレベルのウィンドウを作成し、懸濁ウィンドウの効果を実現します.WindowManagerの方法は簡単で、基本的に3つのaddView、removeView、updateViewLayoutを使用します.ウィンドウマンはLayoutParamsのプロパティは多く、SDKドキュメントを参照してください.ここではAndroidのWindowManagerを示します.JAvaソース、具体的に見てもいいです.簡単なサンプルコードを次に示します.
AndroidManifestでxmlに権限を追加するには、次の手順に従います.
このFIRST_SYSTEM_WINDOWの値は2000です.
2003と2002の違いは、2003タイプのViewが2002タイプよりもtopで、システムドロップダウンステータスバーに表示できることです!
public class myFloatView extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button bb=new Button(getApplicationContext());
WindowManager wm=(WindowManager)getApplicationContext().getSystemService("window");
WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();
/**
* WindowManager.LayoutParams
* SDK
*/
wmParams.type=2002; // , 2003
wmParams.format=1;
/**
* flags
* wmParams.flags |= FLAG_NOT_FOCUSABLE;
*40 wmParams (32)+ FLAG_NOT_FOCUSABLE(8)
*/
wmParams.flags=40;
wmParams.width=40;
wmParams.height=40;
wm.addView(bb, wmParams); // View
}
}
AndroidManifestでxmlに権限を追加するには、次の手順に従います.
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
/**
* Window type: phone. These are non-application windows providing
* user interaction with the phone (in particular incoming calls).
* These windows are normally placed above all applications, but behind
* the status bar.
*/
public static final int TYPE_PHONE = FIRST_SYSTEM_WINDOW+2;
/**
* Window type: system window, such as low power alert. These windows
* are always on top of application windows.
*/
public static final int TYPE_SYSTEM_ALERT = FIRST_SYSTEM_WINDOW+3;
このFIRST_SYSTEM_WINDOWの値は2000です.
2003と2002の違いは、2003タイプのViewが2002タイプよりもtopで、システムドロップダウンステータスバーに表示できることです!