버튼 클릭 할때마다 새로운 ImageView를 생성해서 Layout에 addView시켜주는 코드인데요.
그 ImageView에는 TouchListener가 있어서 .layout메소드로 위치가 변경되는데요.
이때 다시 ImageView를 생성하는 버튼을 누르면 ImageView이 하나 더 생성이 되기는 하는데
원래 있던 것들이 0,0으로 돌아와버리네요 ㅜㅜ
어디 좋은 해결방법 없을까요??
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;
}
});