2011-10-17 10 views
6

विधिडुबकी इकाई नहीं पिक्सल इकाई

public void setPadding (int left, int top, int right, int bottom) 

someview.setPadding(1,1,1,1); 

इस प्रत्येक पक्ष में 1px साथ गद्दी दे देंगे साथ setPadding साथ गद्दी दे। मैं 1px के बजाय 1 डीआईपी कैसे दे सकता हूं?

मूल्यों को छोड़कर, ऊपर दाएं और नीचे पिक्सेल में हैं, मैं डुबकी में कोड में प्रोग्रामेटिक रूप से मूल्य कैसे दे सकता हूं?

धन्यवाद

उत्तर

19

निम्न कोड का प्रयोग करें dp में दिए गए मूल्य से पिक्सल मिलता है।

Resources res = getResources(); 
float value = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, valueInDP, res.getDisplayMetrics()); 

जहां वैल्यूएनडीपी डीपी में मूल्य है और यह स्क्रीन घनत्व के अनुसार संबंधित पिक्सेल मान वापस कर देगा।

या आप निम्नलिखित का उपयोग कर सकते हैं -

float value = valueInDP * getResources().getDisplayMetrics().density; 
+0

आप यकीन है कि यह अच्छा काम करता है कर रहे हैं? :) – Lukap

+1

रिवर्स कैसे होगा? डुबकी से पीएक्स तक, क्या कोई जगह है जहां मुझे अधिक जानकारी मिल सकती है – Lukap

+0

हां। इन लिंक को जांचें http://stackoverflow.com/questions/2406449/does-setwidthint-pixels-use-dip-or-px और http://stackoverflow.com/questions/2238883/what-is-the-correct-way करने वाली निर्दिष्ट-आयाम में डुबकी-से-जावा-कोड। – anujprashar

0
getListView().setPadding(50,50,50,50);