Adding natural dragging effect to ImageView same as Facebook Messanger chat heads using Rebound library

前端 未结 2 1808
广开言路
广开言路 2020-12-09 06:26

I am developing one app where I am dragging around my ImageView in Activity. I have configured Facebook Rebound library for spring animation which is originally used in Face

2条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-09 06:55

    i have used above V class directly in Window-manager and it's work perfectly and chatHead move like 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) {
                // windowManager.removeView(chatHeadView);
            }
        }
    }
    

提交回复
热议问题