Overlay screen on Android

亡梦爱人 提交于 2019-12-04 09:46:29

问题


How is it possible to add Views/Images to my homescreen?

The best example is the facebook messenger: If you long-click at a chat item, you can choose "pop out cheat head", then you have a small button overlaying your screen.

There are also apps like screen-breakers, an image from a broken display overlays everything from the phone.

I've searched for it, but I have no idea what it is called.

I hope you guys are able to understand my english.


回答1:


Answer is SYSTEM_ALERT_WINDOW, this give you capability to draw over any thing in android, same feature facebook is using for drawing its chat heads.

http://developer.android.com/reference/android/Manifest.permission.html#SYSTEM_ALERT_WINDOW

Sample Code:

    private WindowManager windowManager;
    private ImageView imageView;
   // Get window manager reference

    windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

    imageView= new ImageView(YOUR_CONTEXT_HERE);
    imageView.setImageResource(R.drawable.android_head);

    // Setup layout parameter
    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
        WindowManager.LayoutParams.WRAP_CONTENT,
        WindowManager.LayoutParams.WRAP_CONTENT,
        WindowManager.LayoutParams.TYPE_PHONE,
        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
        PixelFormat.TRANSLUCENT);

    params.gravity = Gravity.TOP | Gravity.LEFT; // Orientation
    params.x = 100; // where you want to draw this, coordinates
    params.y = 100;
    // At it to window manager for display, it will be printed over any thing
    windowManager.addView(chatHead, params);


   // Make sure to remove it when you are done, else it will stick there until you reboot
   // Do keep track of same reference of view you added, don't mess with that
   windowManager.removeView(imageView);


来源:https://stackoverflow.com/questions/20658533/overlay-screen-on-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!