Android アクティビティで画像を動的に作成して移動しようとしています。ただし、setX() および setY() メソッドは正しく機能していないようです。画像が最初に作成されて配置されたときに画像の位置を正しく設定しますが、画像を更新しようとすると、画像が間違った場所に配置されます。たとえば、次のコードでは画像が移動します。
ImageView image;
RelativeLayout layout = (RelativeLayout)findViewById(R.id.activity_this);
if(action == MotionEvent.ACTION_DOWN){
image = new ImageView(MyClass.this);
layout.addView(image, width, height);
image.setX(206);
image.setY(206);
}
else if(action == MotionEvent.ACTION_MOVE){
if(image != null){
image.setX(206);
image.setY(206);
}
}
ACTION_MOVE では、x と y の位置の値が同じままであっても、画像は移動します。イメージの親は同じままです。サイズはそのままです。x と y の値を取得しても 206 と表示されますが、アクティビティの (206, 206) には配置されません。なぜこれが起こっているのか、私は迷っています。場所が物理的に変更されていることを除いて、画像が変更されたという兆候は見つかりません。