@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
try {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
picMove(x, y);
break;
case MotionEvent.ACTION_MOVE:
picMove(x, y);
break;
case MotionEvent.ACTION_UP:
picMove(x, y);
break;
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
private void picMove(float x, float y) {
float mx, my;
int intWidth = weatherImage.getWidth();
int intHeight = weatherImage.getHeight();
mx = -x + (intWidth / 2);
my = -y + (intHeight / 2);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) weatherImage
.getLayoutParams();
params.setMargins((int) -mx, (int) -my, 0, 0);//关键点
weatherImage.setLayoutParams(params);
}
xml:
<ImageView
android:id="@+id/weather"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="450dip" />