Размер фоновых изображений для поддержки всех средних и больших экранов Android - PullRequest
1 голос
/ 25 июня 2010

Я пишу приложение и хочу, чтобы одно из моих занятий имело фон,

Я прочитал документы для Android о поддержке нескольких разрешений и т. Д., Но мой дизайнер спрашивает меня, какого размера обоидолжно быть, и я не хочу много изображений для низкого, нормального, высокого разрешения на всех экранах.

Какой самый экономичный способ получить хороший экран, заполняющий графический фон на всех этих экранах?

Android великолепен и все такое, но я не хочу заканчивать с огромным приложением, так как мне нужны изображения всех размеров для всего.

Ответы [ 2 ]

1 голос
/ 25 июня 2010

Одним из подходов является проектирование плотности и использование Руководства по проектированию иконок для значков и размеров, указанных в области « Диапазон экранов » в ПоддержкаНесколько экранов руководство для ваших фоновых изображений.

Для фоновых изображений обязательно учитывайте размеры строки состояния.

Вы можете поместить свои ресурсы в соответствующие папки drawable-mdpi, drawable-hdpi, drawable-ldpi, и они будутиспользовать надлежащим образом.

0 голосов
/ 31 декабря 2014

Как насчет наличия только одного пейзажного фона с высоким разрешением и использования стратегии "растяжения" для отображения?

    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);
}
...