Моя проблема в том, что я перемещаю изображение на TouchEvent в ImageView, у меня есть два изображения на одном экране, но проблема в том, что я касаюсь image2 и перемещаю его, что отлично работает, но если я касаюсь image1, в это время перемещается изображение2 в исходное положение, так в чем же проблема? Извините за плохой английский.
Пожалуйста, помогите мне.
Ниже приведен мой код: -
main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:layout_width="50sp" android:layout_height="50sp"
android:id="@+id/image" android:src="@drawable/image">
</ImageView>
<ImageView android:layout_y="30dip" android:layout_x="118dip"
android:layout_width="50sp" android:layout_height="50sp" android:id="@+id/image1"
android:src="@drawable/image1">
</ImageView>
</RelativeLayout>
MainActivity.java: -
public class MainActivity extends Activity implements OnTouchListener {
int windowwidth;
int windowheight;
private RelativeLayout.LayoutParams layoutParams;
private RelativeLayout.LayoutParams layoutParams1;
ImageView image, image1;
int x_cord, y_cord;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
windowwidth = getWindowManager().getDefaultDisplay().getWidth();
windowheight = getWindowManager().getDefaultDisplay().getHeight();
image = (ImageView) findViewById(R.id.image);
image.setOnTouchListener(this);
image1 = (ImageView) findViewById(R.id.image1);
image1.setOnTouchListener(this);
}
public boolean onTouch(View v, MotionEvent event) {
switch (v.getId()) {
case R.id.image:
System.out.println("Image is Touched");
image = (ImageView) findViewById(R.id.image);
layoutParams = (RelativeLayout.LayoutParams) image.getLayoutParams();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
int x_cord = (int) event.getRawX();
int y_cord = (int) event.getRawY();
if (x_cord > windowwidth) {
x_cord = windowwidth;
}
if (y_cord > windowheight) {
y_cord = windowheight;
}
layoutParams.leftMargin = x_cord - 25;
layoutParams.topMargin = y_cord - 75;
image.setLayoutParams(layoutParams);
break;
default:
break;
}
case R.id.image1:
System.out.println("Image 1 is Touched");
image1 = (ImageView) findViewById(R.id.image1);
layoutParams1 = (RelativeLayout.LayoutParams) image1
.getLayoutParams();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
x_cord = (int) event.getRawX();
y_cord = (int) event.getRawY();
if (x_cord > windowwidth) {
x_cord = windowwidth;
}
if (y_cord > windowheight) {
y_cord = windowheight;
}
layoutParams1.leftMargin = x_cord - 25;
layoutParams1.topMargin = y_cord - 75;
image1.setLayoutParams(layoutParams1);
break;
default:
break;
}
}
return true;
}
}