イメージビューの外に出ないように、テキストビューをイメージビュー内に移動したい。テキストビューをタッチして移動すると、指に追従するはずです。しかし、イメージビューの外に移動すると、テキストビューはイメージビューの外に移動してはなりません。
public boolean onTouch(View view, MotionEvent event)
{
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams)view.getLayoutParams();
imgrect=new Rect(parent.getLeft(), parent.getTop(), parent.getRight(), parent.getBottom());
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
x = X - lParams.leftMargin;
y = Y - lParams.topMargin;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_MOVE:
int w=parent.getWidth() - imgrect.left-view.getWidth();
int h=parent.getHeight() - imgrect.top;//-view.getHeight();
if(lParams.leftMargin<1)
{
lParams.leftMargin = 1;
view.setLayoutParams(lParams);
}
else if(lParams.topMargin<1)
{
lParams.topMargin = 1;
view.setLayoutParams(lParams);
}
else if(lParams.leftMargin>w)
{
lParams.leftMargin = w-1;
view.setLayoutParams(lParams);
}
else if(lParams.topMargin>h)
{
lParams.topMargin = h-1;
view.setLayoutParams(lParams);
}
else
{
lParams.leftMargin = X - x;
lParams.topMargin = Y - y;
view.setLayoutParams(lParams);
}
break;
}
parent.invalidate();
return false;
}