Размер фоновых изображений для поддержки всех средних и больших экранов Android
-
30-09-2019 - |
Вопрос
Я пишу приложение, и я хочу, чтобы одна из моих мероприятий есть фон,
Я прочитал документы Android о поддержке нескольких разрешений и т. Д., Но мой дизайнер спрашивает меня, какой размер обоев должен быть, и я не хочу много изображений для низких, нормальных, высоких DPI во всех размерах экрана.
Каким был бы самый космический эффективный способ получить хороший наполнение наполнения экрана на всех этих экранах?
Android отлично и все, но я не хочу в конечном итоге с огромным приложением, так как мне нужны все размеры изображений для всего.
Решение
Один подход - это разработать плотности и использовать Руководящие принципы дизайна значка для значков, а размеры, указанные в "Диапазон экранов"область в Поддержка нескольких экранов Руководство для ваших фоновых изображений.
Для фоновых изображений обязательно возьмите во внимание размеры строки состояния.
Вы можете поместить свои ресурсы в соответствующие Drawable-MDPI, Drawblable-HDPI, Drawblable-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);
}