zoukankan      html  css  js  c++  java
  • android 窗口的使用

    android 窗口类型分为三类:

    1,第一种为应用窗口。所谓的应用窗口一般是指该窗口对应一个Activity,由于加载Activity是由AmS完成的,因此,对于应用程序来讲,要创建一个应用类窗口,只能      在Activity内部完成。

    2,第二种是子窗口。所谓的子窗口是指,该窗口必须有一个父窗口,父窗口可以是一个应用类型窗口,也可以是任何其他类型的窗口。

    3,第三种是系统窗口。系统窗口不需要对应任何Activity,也不需要有父窗口。对于应用程序而言,理论上是无法创建系统窗口,因为所有的  

         应用程序都没有这个权限,然而系统进程却可以创建系统窗口。

    创建一个窗口

    1,添加权限

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

    2,android  code

     1 public class WindowActivity extends AppCompatActivity {
     2 
     3     private WindowManager wm;
     4 
     5     @Override
     6     protected void onCreate(Bundle savedInstanceState) {
     7         super.onCreate(savedInstanceState);
     8         setContentView(R.layout.activity_window);
     9          wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
    10     }
    11 
    12     public void show(View view) {
    13       final View views = LayoutInflater.from(this).inflate(R.layout.dialog_layout, null);
    14         views.findViewById(R.id.cnacel).setOnClickListener(new View.OnClickListener() {
    15             @Override
    16             public void onClick(View v) {
    17                 wm.removeView(views);
    18             }
    19         });
    20         views.findViewById(R.id.sure).setOnClickListener(new View.OnClickListener() {
    21             @Override
    22             public void onClick(View v) {
    23                 wm.removeView(views);
    24             }
    25         });
    26         IBinder token = view.getWindowToken();
    27         //WindowManager.LayoutParams.TYPE_APPLICATION_PANEL,子窗口
    28         WindowManager.LayoutParams lp =  new WindowManager.LayoutParams(
    29                 WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.WRAP_CONTENT,
    30                 WindowManager.LayoutParams.TYPE_PRIORITY_PHONE,//系统窗口跟activity没有关系,可以在任何activity上弹出来
    31                 WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
    32                 | WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING,
    33                 PixelFormat.RGBX_8888
    34         );
    35 
    36         lp.gravity = Gravity.CENTER_HORIZONTAL |Gravity.CENTER;
    37         lp.token = token;
    38 
    39         wm.addView(views,lp);
    40     }
    41 }

    (小米手机测试时要打开悬浮框)

  • 相关阅读:
    POJ 3713 Transferring Sylla【Tarjan求割点】
    Tarjan算法【强连通分量】
    POJ 1273 Drainage Ditches【最大流模版】
    CDOJ 1960 构造哈密顿路径
    HDU 1384 Intervals【差分约束-SPFA】
    POJ 1364 / HDU 3666 【差分约束-SPFA】
    【SPFA与Dijkstra的对比】CDOJ 1961 咸鱼睡觉觉【差分约束-负权最短路径SPFA】
    CDOJ 1965 连通域统计【DFS】
    CDOJ 1964 命运石之门【最短路径Dijkstra/BFS】
    最小生成树模板【kruskal & prim】
  • 原文地址:https://www.cnblogs.com/lihaolihao/p/5175780.html
Copyright © 2011-2022 走看看