سؤال

وفقًا لإدارة الموارد (الصور) في> إصدار Android 1.6 ، نحتاج إلى الحفاظ على صور مختلفة في Drawable-HDPI أو Drawable-MDPI أو مجلد Drawable LPI بشكل خاص.

ووفقًا لهذه الصفحة: http://developer.android.com/guide/practices/screens_support.html ,

في قسم الكثافة المنخفضة - هناك ثلاثة قرارات مستخدمة: 240*320 ، 240 × 400 ، 240 × 432 للشاشة الصغيرة ، الشاشة العادية ، شاشة كبيرة بشكل خاص.

نفس الطريقة لقسم الكثافة المتوسطة - هناك ثلاثة قرارات مستخدمة: 320 × 480 ، 480 × 800 ، 480 × 854 للشاشة الصغيرة ، الشاشة العادية ، شاشة كبيرة بشكل خاص.

ونفس الطريقة لكثافة عالية ........

لكني في حيرة من أمري هنا:

(1) كيف يمكنني معرفة ما إذا كانت شاشة صغيرة أو طبيعية أو كبيرة تستخدم ، أعني هل هناك أي طريقة لمعرفة؟

(2) كيف أتعرف على نوع الكثافة التي أستخدمها؟

(3) وفي Drawable-HDPI ، Drawable-MDPI ، مجلد Drawable-LDPI ، أي صورة دقة يجب أن نحافظ عليها بشكل خاص؟

الرجاء مشاركة معرفتك.

هل كانت مفيدة؟

المحلول

هناك مكالمات محددة Android API التي يمكن ، في وقت التشغيل إخبارك عن الكثافة وحجم الشاشة (الصغير/الكبير/العادي) الذي يحتوي عليه الهاتف. ومع ذلك ، كمطور ، يجب ألا نحتاج إلى القلق بشأن الهواتف الفردية على الإطلاق. كل ما نحتاج إلى فعله هو الحصول على أصول LDPI/MDPI/HDPI والتخطيطات الصغيرة/العادية/الكبيرة في APK. أندرويد يعالج كل شيء داخليًا.

لا تنسى أن تحصل على فهم متعمقة لكيفية تحدد Android الأصول التي يجب استخدامها والتعليق عليها هنا.

نصائح أخرى

لماذا تريد معرفة الكثافة الفعلية؟ إنه عمل Android. لكنني متأكد من أن هناك طريقة لاسترداد هذه المعلومات.

للتنمية ، وضعت كل شيء في مجلد HDPI. كما يمكنني وضع كل شيء في مجلد قابل للرسمية عام.

في الوقت الذي تنشر فيه ، يمكنك أن تقرر ما إذا كنت ترغب في توفير موارد مخفضة بالفعل لـ LDPI و MDPI. ومع ذلك ، هذا ليس ضروريا.

تحديث: استرداد الكثافة الفعلية مع هذه الفئة و أفضل الممارسات

تحديث 2: لقد وجدت مقطع فيديو لمدة 25 دقيقة من موتورولا يناقش كل هذه القضايا: العمل مع شاشات متعددة

1) قم بتغيير محتوى التصميم في مجلدات مختلفة ، أي تخطيط small ، و large التخطيط ، وما إلى ذلك ، اختبره الآن في محاكي مختلف بدقة شاشة مختلفة.

2) لمعرفة كثافة استخدام الجهاز
Log.d("Density", "" + (getResources().getDisplayMetrics().density));

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top