I used the V-class above directly in the Window-manager, and it works fine, and chatHead moves like a facebook messenger.
public class ChatHeadService extends Service { private LayoutInflater inflater; private WindowManager windowManager; private Point szWindow = new Point(); @Override public void onCreate() { super.onCreate(); Log.v(Utils.LogTag, "Start Service"); } private void handleStart(){ windowManager = (WindowManager)getSystemService(WINDOW_SERVICE); inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); if (Build . VERSION . SDK_INT >= Build . VERSION_CODES . HONEYCOMB) { windowManager . getDefaultDisplay() . getSize(szWindow); } else { int w = windowManager . getDefaultDisplay() . getWidth(); int h = windowManager . getDefaultDisplay() . getHeight(); szWindow . set(w, h); } WindowManager . LayoutParams params = new WindowManager . LayoutParams( WindowManager . LayoutParams . WRAP_CONTENT, WindowManager . LayoutParams . WRAP_CONTENT, WindowManager . LayoutParams . TYPE_PHONE, WindowManager . LayoutParams . FLAG_NOT_FOCUSABLE | WindowManager . LayoutParams . FLAG_WATCH_OUTSIDE_TOUCH | WindowManager . LayoutParams . FLAG_LAYOUT_NO_LIMITS, PixelFormat . TRANSLUCENT ); params . gravity = Gravity . TOP | Gravity . LEFT; params . x = 50; params . y = 100; V vImg = new V(this); windowManager . addView(vImg, params); } @Override public int onStartCommand(Intent intent, int flags, int startId) { if (intent != null) { if (startId == Service . START_STICKY) { handleStart(); } } return super . onStartCommand(intent, flags, startId); } @Override public IBinder onBind(Intent intent) { return null; } @Override public void onDestroy(){ super . onDestroy(); if (windowManager != null) {
user6443638
source share