Bir Android etkinliğinde bir görüntüyü dinamik olarak oluşturmaya ve taşımaya çalışıyorum. Ancak, setX() ve setY() yöntemleri düzgün çalışmıyor gibi görünüyor. İlk oluşturulduğu ve yerleştirildiği zaman bir görüntünün konumunu doğru olarak ayarlar, ancak onu güncellemeye yönelik herhangi bir giriş, görüntüde yanlış noktaya yerleştirilir. Örneğin, görüntü aşağıdaki kodu taşır: ACTION_MOVE üzerinde görüntü x ve y pozisyon değerleri aynı kalır halde taşınırAndroid setX() ve setY() garip davranıyor
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);
}
}
. Resmin ebeveyni aynı kalır. Boyut aynı kalır. Eğer x ve y değerlerini elde edersem, hala 206 diyecektir, ancak artık faaliyete (206, 206) yerleştirilmez. Bunun neden olduğu konusunda kayboldum. Fiziksel olarak konumu değiştirmesi dışında resmin değiştirildiğine dair hiçbir belirti bulamıyorum.
Tyvm'de bir değişikliğe neden olur. Params kullanmak benim için çalışıyor. Yine de setX ve Y ile olan biteni merak ediyorum. Her şeyi denedim ama her zaman aşağı olayda ayarlandıktan sonra bir değer ayarladım (yeni değeri nasıl ayarlamam olursa olsun) görüntü yanlış yere taşınır. Onunla test ettiğim emülatörde yaklaşık 30 piksel kadar sabit bir değer ve solda. Görüşün ebeveyni ya da başka bir şeyini değiştirmek zorunda olduğunu düşündüm ama bu o değil. Tam olarak bulabileceğim farklı bir şey yok. – user2423199
Yoğunluk olabilir mi? Sayıları programatik olarak ayarlarken, px değerlerini dp değerlerine dönüştürmek için getResources(). GetDisplayMetrics() .gensi ile çoğalmalısınız. – marmor