80

मैं अपने अनुप्रयोग के लिए छवि संपत्ति के बारे में कुछ संदेह स्पष्ट करने की आवश्यकता,बारे में एंड्रॉयड छवि और परिसंपत्ति आकार

अगर मैं एक xml फ़ाइल है कि कुछ [छवि दृश्य] की ऊंचाई

है 50 डुबकी ऊंचाई में निर्दिष्ट

मुझे किस प्रकार की स्क्रीन संसाधन फ़ोल्डर से चुननी चाहिए?

drawable, hdpi, ldpi, mdpi, xhdpi, 

50 पिक्सल ऊंचाई छवि,

के लिए और बड़ा के लिए प्रतिशत, आधार छवि की तुलना में छोटे आकार छवियों,

आईओएस में कैसे दिखाई देते है, @ 2x, सचमुच 2 है छवि के आकार के समय, और आप प्रोग्रामिक रूप से सामान्य आकार कहते हैं,

धन्यवाद!

+1

आपका प्रश्न एंड्रॉइड के मैनुअल में समझाया गया है: http://developer.android.com/guide/practices/screens_support.html –

उत्तर

349

mdpi संदर्भ घनत्व है - यानी mdpi पर 1 पीएक्स 1 डुबकी के बराबर है। संपत्ति स्केलिंग के लिए अनुपात है:

ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi 
0.75 | 1 | 1.33 | 1.5 | 2  | 3  | 4 

तुम सच में tvdpi बारे में चिंता करने की जरूरत नहीं है हालांकि जब तक आप विशेष रूप से गूगल टीवी या मूल नेक्सस 7 के लिए विकसित कर रहे हैं - लेकिन फिर भी गूगल बस hdpi संपत्ति का उपयोग अनुशंसा करता है।

इसका मतलब यह है कि यदि आप 48 डीआईपी छवि कर रहे हैं और xxhdpi resolution तक समर्थन करने की योजना बना रहे हैं, तो आपको 144px छवि (1 9 2 पीएक्स के साथ शुरू करना चाहिए यदि आप xxxhdpi के लिए मूल संपत्ति चाहते हैं) और घनत्व के लिए निम्नलिखित छवियां बनाना चाहिए:

ldpi | mdpi | tvdpi | hdpi | xhdpi  | xxhdpi | xxxhdpi 
36 x 36 | 48 x 48 | 64 x 64 | 72 x 72 | 96 x 96 | 144 x 144 | 192 x 192 

और ये किसी भी डिवाइस पर मोटे तौर पर एक ही आकार प्रदर्शित करना चाहिए, आप घनत्व विशेष फ़ोल्डर में इन रखा है, बशर्ते कि (जैसे drawable-xhdpi, drawable-hdpi, आदि)

संदर्भ के लिए, पिक्सेल घनत्व इनके लिए:

ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi 
120 | 160 | 213 | 240 | 320 | 480  | 640 
+31

यह कहीं भी ऑनलाइन देखा गया इस विषय का सबसे आसान स्पष्टीकरण है। मैं सचमुच इसे अपने डिजाइनर वर्क स्टेशन लॉल –

+10

हाहा पर चिह्नित करता हूं, हाहा! : पी ने XXHDPI के लिए भी जानकारी जोड़ दी है। – kcoppock

+0

आप कैसे निर्णय लेते हैं कि आपको 48 डीआईपी से शुरू करना है? मान लें कि आपके पास केवल एक टैबलेट (एमडीपीआई) है, क्या आप यादृच्छिक आकार से शुरू करते हैं, और जब तक यह "काफी बड़ा" दिखाई देता है तब तक पुनरावृत्ति करें? – phtrivier

4

केकोपॉक ने एंडोरिड स्क्रीन घनत्व को समझाते हुए एक शानदार काम किया। मैं मूल प्रश्न के बारे में एक और बिंदु जोड़ना चाहता हूं।

एंड्रॉइड टैबलेट लॉन्चर आइकन एक घनत्व बाल्टी का उपयोग करता है।

गूगल के डेवलपर के अनुसार निक कसाई के Google+ पोस्ट

Nexus 10 पर भव्य स्क्रीन XHDPI घनत्व बाल्टी में गिर जाता है। टैबलेट पर, लॉन्चर एक घनत्व बाल्टी से आइकन का उपयोग करता है [0] उन्हें थोड़ा बड़ा प्रस्तुत करने के लिए। यह सुनिश्चित करने के लिए कि आपका लॉन्चर आइकन (तर्कसंगत रूप से आपके ऐप्स सबसे महत्वपूर्ण संपत्ति) कुरकुरा है, आपको drawable-xxhdpi या drawable-480dpi फ़ोल्डर में 144 * 144px आइकन जोड़ने की आवश्यकता है।

ढूँढें स्रोत here

22

kcoppock के जवाब मैं निम्नलिखित खोल स्क्रिप्ट बनाया है स्वचालित रूप से सही आकार करने के लिए सभी छवियों का आकार करने के लिए और संबंधित एंड्रॉयड drawable- * में उन्हें कॉपी के आधार पर - फ़ोल्डरों!

एक खोल स्क्रिप्ट बनाएं और निम्नलिखित कोड पेस्ट करें:

createAndroidImages.sh

#!/bin/bash 

read -p "Please enter the subfolder of the original images? " folder 
read -p "How many DP (width) should the image have? " dp 

for i in $(find $folder/. -type f -name "*[A-Z]*"); do mv "$i" "$(echo $i | tr A-Z a-z)"; done 

mkdir drawable-ldpi 
mkdir drawable-mdpi 
mkdir drawable-tvdpi 
mkdir drawable-hdpi 
mkdir drawable-xhdpi 
mkdir drawable-xxhdpi 
mkdir drawable-xxxhdpi 

cp $folder/* drawable-ldpi/ 
cp $folder/* drawable-mdpi/ 
cp $folder/* drawable-tvdpi/ 
cp $folder/* drawable-hdpi/ 
cp $folder/* drawable-xhdpi/ 
cp $folder/* drawable-xxhdpi/ 
cp $folder/* drawable-xxxhdpi/ 

sips -Z $(echo $dp*3/4 | bc) drawable-ldpi/* 
sips -Z $(echo $dp | bc) drawable-mdpi/* 
sips -Z $(echo $dp*4/3 | bc) drawable-tvdpi/* 
sips -Z $(echo $dp*3/2 | bc) drawable-hdpi/* 
sips -Z $(echo $dp*2 | bc) drawable-xhdpi/* 
sips -Z $(echo $dp*3 | bc) drawable-xxhdpi/* 
sips -Z $(echo $dp*4 | bc) drawable-xxxhdpi/* 

एक सबफ़ोल्डर जैसे में एक फ़ोल्डर में अपनी स्क्रिप्ट और अपने मूल छवियों रखो:

/ 
.. createAndroidImages.sh 
.. originalImages/ 
....a123.png 
....b456.png 

टर्मिनल में खोल स्क्रिप्ट चलाएं: sh createAndroidImages.sh

अपने Android स्टूडियो परियोजना के लिए सीधे बनाया छवियों की प्रतिलिपि करने के लिए:

cp -R drawable-* ~/AndroidStudioProjects/ESCRating/app/src/main/res/ 

आप काम हो गया! उम्मीद है कि यह किसी की मदद करता है!

पीएस कृपया ध्यान दें कि इष्टतम परिणामों के लिए मूल छवियों में डीपीआई में वांछित चौड़ाई (उदा। 4 (कारक xxxhdpi) * 30dpi => 120px) की तुलना में पिक्सेल में कम से कम चार गुना होना चाहिए।

1

यहाँ है आकार बढ़ाए जाने और android-

ldpi (120 डीपीआई, कम घनत्व स्क्रीन) के लिए छवियों के आकार छोटा करने के लिए मेरे गणना - 36px एक्स 36px (0,19) (1)

mdpi (160 डीपीआई, मध्यम घनत्व स्क्रीन) - 48px एक्स 48px (0,25) (1,33)

hdpi (240 डीपीआई, उच्च घनत्व स्क्रीन) - 72px एक्स 72px (0,38) (2)

xhdpi (320 डीपीआई, अतिरिक्त उच्च घनत्व स्क्रीन) - 96px एक्स 96px (0,5) (2,67)

xxhdpi (480 डीपीआई, बहुत-बहुत-उच्च घनत्व स्क्रीन) - 144px x 144px (0.75) (4)

xxxhdpi (640 डीपीआई, बहुत-बहुत-अतिरिक्त उच्च घनत्व स्क्रीन) - 192px x 192px (1,0) (5,33)

My short article ImageMagick का उपयोग कर छवि संसाधन बनाने के लिए उपयोगी है जब, कई छवियां हैं।