حجم صور الخلفية لدعم جميع شاشات Android المتوسطة والكبيرة

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

سؤال

أنا أكتب تطبيقًا وأريد أن يكون لأحد أنشطتي خلفية ،

لقد قرأت مستندات Android حول دعم قرارات متعددة وما إلى ذلك ، لكن المصمم الخاص بي يسألني عن حجم الخلفيات التي يجب أن تكون عليها ولا أريد الكثير من الصور لاتفاقية DPI منخفضة وعادية وعالية في جميع أحجام الشاشة.

ما هي الطريقة الأكثر فعالية للمساحة للحصول على خلفية رسومية لملء الشاشة لطيفة على كل تلك الشاشات؟

Android رائع وكل شيء ، لكنني لا أريد أن ينتهي بتطبيق ضخم لأنني بحاجة إلى جميع أحجام الصور لكل شيء.

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

المحلول

نهج واحد هو تصميم الكثافة واستخدام إرشادات تصميم الرموز للأيقونات ، والأبعاد المحددة في ""مجموعة من الشاشات"المنطقة في دعم شاشات متعددة دليل لصور الخلفية الخاصة بك.

بالنسبة لتصوير الخلفية ، تأكد من أخذ أبعاد شريط الحالة في الاعتبار.

يمكنك وضع مواردك في MDPI القابلة للرسمية المناسبة ، HDPI القابلة للرسوم ، ومجلدات Drawable-LDPI وسيتم استخدامها بشكل مناسب.

نصائح أخرى

ماذا عن وجود خلفية واحدة فقط عالية الدقة واستخدام استراتيجية "تمتد" للعرض؟

    mBackgroundGraphic = BitmapFactory.decodeResource(getResources(), R.drawable.background);
    mBackgroundGraphic = getResizedBitmap(mBackgroundGraphic);

public Bitmap getResizedBitmap(Bitmap bm) {
    int width = bm.getWidth();
    int height = bm.getHeight();
    int displayWidth = mDisplay.getWidth();
    int displayHeight = mDisplay.getHeight();
    float scaleWidth = ((float) displayWidth) / width;
    float scaleHeight = ((float) displayHeight) / height;

    // Create a matrix for the manipulation
    Matrix matrix = new Matrix();

    // Resize the bit map
    matrix.postScale(scaleWidth, scaleHeight);

    // Return the new stretched Bitmap
    return Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top