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