버튼 클릭 할때마다 새로운 ImageView를 생성해서 Layout에 addView시켜주는 코드인데요.


그 ImageView에는 TouchListener가 있어서 .layout메소드로 위치가 변경되는데요.


 

이때 다시 ImageView를 생성하는 버튼을 누르면 ImageView이 하나 더 생성이 되기는 하는데

원래 있던 것들이 0,0으로 돌아와버리네요 ㅜㅜ

어디 좋은 해결방법 없을까요??

C:\Users\Administrator\Documents\workspace\UI_Planner\src\brandNew\UI_Planner\smu
 



widget.setOnTouchListener(new OnTouchListener()

        {                   

       

                    @Override

                    public boolean onTouch(View v, MotionEvent event) {

                           // TODO Auto-generated method stub                                      

                          

                           if(event.getAction() == MotionEvent.ACTION_DOWN)

                           {

                                 Palette.startAnimation(PaletteOut);

                                

                                final ImageView mImageView = new ImageView(getBaseContext());

                                

                                

                                 mImageView.setBackgroundResource(R.drawable.area);

                                 mImageView.setOnTouchListener(new OnTouchListener() {

                                       

                                        private int preX;

                            private int preY;

                            private int x;

                            private int y;

                            private int selX;

                            private int selY;

                           

                            private int tx;

                            private int ty;

                           

                                        @Override

                                        public boolean onTouch(View v, MotionEvent event) {

                                              // TODO Auto-generated method stub

                                              x = (int) event.getX();

                                              y = (int) event.getY();

                                             

                                              switch(event.getAction())

                                              {

                                                     case MotionEvent.ACTION_DOWN :

                                                            mImageView.bringToFront();

                                                            selX = preX = x;

                                                selY = preY = y;

                                                return true;

                                                     case MotionEvent.ACTION_MOVE :

                                                            tx = x - preX;

                                                      ty = y - preY;

                                                     if(  ((tx > -allowGap) && (tx < allowGap)) && ((ty > -allowGap) && (ty < allowGap))  )

                                                      {

                                                       return false;

                                                      }

                                                      else

                                                      {

                                                             tx = x - selX;

                                                             ty = y - selY;

                                                            

                                                             mImageView.layout(mImageView.getLeft() + tx, mImageView.getTop() + ty,

                                                                         mImageView.getRight() + tx, mImageView.getBottom() + ty);                                                          

                                                            

                                                             preX = x;

                                                             preY = y;

 

                                                       return true;

                                                      }

                                              };

                                              return false;

                                        }

                                 });

                                

                                 Frame.addView(mImageView, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

                           }

                          

                           return false;

                    }

             });