问题
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