كيفية تحديد فئة حجم شاشة الجهاز (صغير، عادي، كبير، كبير جداً) باستخدام الكود؟

StackOverflow https://stackoverflow.com/questions/5015094

سؤال

هل هناك طريقة لتحديد فئة حجم شاشة الجهاز الحالي مثل صغير، عادي، كبير، اكس لارج؟

ليس الكثافة، ولكن حجم الشاشة.

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

المحلول

يمكنك استخدام ال Configuration.screenLayout قناع نقطي.

مثال:

if ((getResources().getConfiguration().screenLayout & 
    Configuration.SCREENLAYOUT_SIZE_MASK) == 
        Configuration.SCREENLAYOUT_SIZE_LARGE) {
    // on a large screen device ...

}

نصائح أخرى

الرمز الموجود أسفل الجسد أعلاه، وعرض حجم الشاشة كخبز نخب. giveacodicetagpre.

يعرض هذا الرمز أدناه كثافة الشاشة كخبز نخب. giveacodicetagpre.

href="https://stackoverflow.com/users/235945/jeff-gilfelt"> Jeff Gilfelt's الإجابة طريقة مساعد ثابتة: giveacodicetagpre.

شكرا على الإجابات أعلاه، التي ساعدتني كثيرا :-) ولكن بالنسبة لأولئك (مثلي) أجبروا على دعم أندرويد 1.5 يمكننا استخدام انعكاس Java للخلف متوافق: giveacodicetagpre.

giveacodicetagpre.

إذا كنت ترغب في معرفة كثافة الشاشة وحجم جهاز Android بسهولة، يمكنك استخدام هذا التطبيق المجاني (بدون إذن مطلوب): https://market.android.com/details؟id=com.jotabout.screeninfo / ص>

بحاجة إلى التحقق من شاشات Xlarge و X.. كثافات؟هذا هو التعليمات البرمجية التي تم تغييرها من الإجابة المختارة. giveacodicetagpre.

هنا هو إصدار Xamarin.android من إجابة توم مكفارلين giveacodicetagpre.

في عام 2018، إذا كنت بحاجة إلى إجابة جيف في Kotlin، فهذا هو: giveacodicetagpre.

ألا يمكنك القيام بذلك باستخدام مورد سلسلة والتعدادات؟يمكنك تحديد مورد سلسلة يحمل اسم حجم الشاشة، مثل SMALL أو MEDIUM أو LARGE.ثم يمكنك استخدام قيمة مورد السلسلة لإنشاء مثيل للتعداد.

  1. حدد Enum في الكود الخاص بك لأحجام الشاشات المختلفة التي تهمك.

    public Enum ScreenSize {
        SMALL,
        MEDIUM,
        LARGE,;
    }
    
  2. حدد مورد سلسلة، مثل حجم الشاشة، وستكون قيمته إما صغيرة أو متوسطة أو كبيرة.

    <string name="screensize">MEDIUM</string>
    
  3. ضع نسخة من screensize في مورد سلسلة في كل البعد الذي يهمك.
    على سبيل المثال، <string name="screensize">MEDIUM</string> سوف تذهب في القيم sw600dp/strings.xml والقيم المتوسطة/strings.xml و <string name="screensize">LARGE</string> سيتم إدخاله في sw720dp/strings.xml وvalues-large/strings.xml.
  4. في الكود اكتب
    ScreenSize size = ScreenSize.valueOf(getReources().getString(R.string.screensize);

انسخ هذا الكود والصقه في جهازك Activity وعندما يتم تنفيذه فإنه سوف Toast فئة حجم شاشة الجهاز.

int screenSize = getResources().getConfiguration().screenLayout &
        Configuration.SCREENLAYOUT_SIZE_MASK;

String toastMsg;
switch(screenSize) {
    case Configuration.SCREENLAYOUT_SIZE_LARGE:
        toastMsg = "Large screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:
        toastMsg = "Normal screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_SMALL:
        toastMsg = "Small screen";
        break;
    default:
        toastMsg = "Screen size is neither large, normal or small";
}
Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();

جرب هذه الوظيفة islayoutsizeatleast (الشاشة الدولية)

للتحقق من شاشة صغيرة، على الأقل 320x426 DP وما فوق GetResources (). GetConfiguration (). islayoutsizeatleast (التكوين.creenlayout_size_small)؛

للتحقق من الشاشة العادية، على الأقل 320x470 DP وما فوق getresources (). getconfiguration (). islayoutsizeatleast (التكوين .screenlayout_size_normal)؛

للتحقق من شاشة كبيرة، على الأقل 480x640 DP وما فوق GetResources (). getconfiguration (). islayoutsizeatleast (التكوين.creenlayout_size_large)؛

للتحقق من شاشة كبيرة إضافية، أتلست 720x960 DP وما فوق getresources (). getconfiguration (). islayoutsizeatleast (التكوين.creenlayout_size_xlarge)؛

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