मैं गतिशील रूप से बनाने और फिर एक एंड्रॉइड गतिविधि में एक छवि को स्थानांतरित करने की कोशिश कर रहा हूं। हालांकि, 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 स्थिति मान ही रहते हैं। छवि का अभिभावक वही रहता है। आकार वही रहता है। अगर मुझे एक्स और वाई मान मिलते हैं तो यह अभी भी 206 कहेंगे, लेकिन यह अब गतिविधि पर (206, 206) पर नहीं रखा गया है। मैं खो रहा हूं कि यह क्यों हो रहा है। मुझे कोई संकेत नहीं मिल रहा है कि भौतिक रूप से बदलते स्थान को छोड़कर छवि को बदल दिया गया है।
Tyvm में परिवर्तन का कारण बनता है। पैराम का उपयोग करना मेरे लिए काम करता है। मैं अभी भी उत्सुक हूं कि सेटएक्स और वाई के साथ क्या हो रहा है। मैंने सब कुछ करने की कोशिश की है, लेकिन जब भी मैं पहले से ही डाउन इवेंट में सेट हो चुका हूं, इससे कोई फर्क नहीं पड़ता है (इससे कोई फर्क नहीं पड़ता कि मैं नया मान कैसे सेट करता हूं) छवि गलत स्थान पर ले जाया गया है। यह निरंतर मूल्य के करीब 30 पिक्सल तक बहुत दूर है और एमुलेटर पर बाईं ओर मैं परीक्षण कर रहा हूं। मैंने सोचा कि इसे दृश्य के माता-पिता या कुछ बदलना था, लेकिन ऐसा नहीं है। सचमुच कुछ अलग नहीं है जो मैं पा सकता हूं। – user2423199
क्या यह घनत्व हो सकता है? प्रोग्राम संख्यात्मक रूप से सेट करते समय, आपको getResources() से गुणा करना चाहिए। GetDisplayMetrics()। Dx मानों को px मानों को बदलने के लिए घनत्व – marmor