Androidのアクティビティで画像を動的に作成して移動しようとしています。しかし、setX()とsetY()メソッドは正しく動作しないようです。画像を最初に作成して配置するときに画像の位置を正しく設定しますが、画像を更新しようとすると画像が間違った場所に配置されます。例えば、画像は、次のコードに移動する:ACTION_MOVE上の画像は、x及びy位置の値が同じままであっても移動さ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);
}
}
。画像の親は同じままです。サイズは変わりません。 xとyの値を取得すると、それはまだ206となりますが、アクティビティの(206,206)には配置されません。なぜこれが起こっているのか分からない。私は、物理的に場所が変わる以外は、画像が変更されたという指示はありません。
Tyvmです。 paramsを使うことは私のために働く。私はまだsetXとYで何が起こっているのか不思議です。私はすべてを試しましたが、ダウンイベントで既に設定されている値を設定した後は、いつでも値を設定します(新しい値を設定してもイメージは間違った場所に移動されます)。オフに30ピクセル周りの一定値で離れすぎて、私がテストしているエミュレータの左に。私はそれがビューの親や何かを変えなければならないと思ったが、それはそうではない。文字通り私が見つけることのできるものは何も変わりません。 – user2423199
密度がありますか?プログラムで数値を設定するときは、getResources()。getDisplayMetrics().px値をdp値に変更する密度を掛ける必要があります – marmor