This works but the value I get is multiplied times the screen density factor
(1.5 for hdpi, 2.0 for xhdpi, etc).
मुझे लगता है कि संकल्प के अनुसार मूल्य प्राप्त करना अच्छा है लेकिन यदि आप ऐसा नहीं करना चाहते हैं तो इसे px में दें ......।
घनत्व-स्वतंत्र पिक्सेल (dp)
एक आभासी पिक्सेल इकाई जिसे आपको यूआई लेआउट को परिभाषित करते समय उपयोग करना चाहिए, लेआउट आयामों या स्थिति को घनत्व-स्वतंत्र तरीके से व्यक्त करने के लिए। घनत्व-स्वतंत्र पिक्सेल 160 डीपीआई स्क्रीन पर एक भौतिक पिक्सेल के बराबर है, जो कि एक "मध्यम" घनत्व स्क्रीन के लिए सिस्टम द्वारा ग्रहण की गई बेसलाइन घनत्व है। रनटाइम के दौरान, सिस्टम पारदर्शी रूप से dp इकाइयों के किसी भी स्केलिंग को संभालता है, जैसा कि आवश्यक है,based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels.
आपको अपने एप्लिकेशन के UI को परिभाषित करते समय, विभिन्न घनत्वों के साथ स्क्रीन पर अपने UI के उचित प्रदर्शन को सुनिश्चित करने के लिए हमेशा dp इकाइयों का उपयोग करना चाहिए।
मुझे लगता है कि मूल्य को संकल्प के अनुसार बदलना अच्छा है लेकिन यदि आप ऐसा नहीं करना चाहते हैं तो इसे px में दें ......।
इस लिंक को देखें
इसके अनुसार
डी पी
घनत्व-स्वतंत्र पिक्सेल - एक अमूर्त इकाई जो स्क्रीन के भौतिक घनत्व पर आधारित होती है। ये इकाइयां एक 160 डीपीआई (डॉट्स प्रति इंच) स्क्रीन के सापेक्ष हैं, जिस पर 1dp लगभग 1px के बराबर है। When running on a higher density screen, the number of pixels used to draw 1dp is scaled up by a factor appropriate for the screen's dpi. Likewise, when on a lower density screen, the number of pixels used for 1dp is scaled down.
डीपी-टू-पिक्सेल का अनुपात स्क्रीन घनत्व के साथ बदल जाएगा, लेकिन जरूरी नहीं कि प्रत्यक्ष अनुपात में। डीपी इकाइयों (पीएक्स इकाइयों के बजाय) का उपयोग करना आपके लेआउट में दृश्य आयामों को विभिन्न स्क्रीन घनत्वों के लिए ठीक से आकार देने के लिए एक सरल समाधान है। दूसरे शब्दों में, यह विभिन्न उपकरणों में आपके UI तत्वों के वास्तविक-विश्व आकार के लिए स्थिरता प्रदान करता है।
पिक्सल
पिक्सेल - स्क्रीन पर वास्तविक पिक्सेल के अनुरूप है। माप की इस इकाई की अनुशंसा नहीं की जाती है क्योंकि वास्तविक प्रतिनिधित्व उपकरणों में भिन्न हो सकता है; प्रत्येक डिवाइस में प्रति इंच पिक्सेल की एक अलग संख्या हो सकती है और स्क्रीन पर अधिक या कम कुल पिक्सेल उपलब्ध हो सकते हैं।
getDimensionPixelSize(int id)
जो वास्तव में पिक्सेल में वापस आती है, इसलिएgetDimension(int id)
dp (निर्भरता स्वतंत्र इकाइयां) में लौटना चाहिए, जो उपयोग के लिए तैयार होगा, उदाहरण के लिए देखेंsetPadding