Intereting Posts
Печать символов Unicode для Android TextView Отображать простой текстовый ярлык / дескриптор, когда пользователь нажимает на OverlayItem в MapView Невозможно выполнить dex: несколько файлов dex определяют Lcom / google / android / gcm / GCMBaseIntentService; Установить отрицательный запас на ImageView сдвигает ImageView, но не изображение Как выровнять панель инструментов Android в нижней части экрана? Как показать персонажи Emoji стиля iOS в EditText Android? Как продолжить тестирование инструментальных средств Android после исключения? Загрузка mulitpart не работает с android + rails Задавать определенный цвет для ColorStateList программно RecognizerIntent не работает; "Отсутствует дополнительный вызов_пакет" Панель прогресса Android в кнопке Проверка подтверждения подписки на приложение для Android в приложении с использованием php OpenSSL Связь между TabActivity и встроенной активностью Исключение java.lang.NoSuchMethodError после использования метода getBlockSizeLong Поддерживаемые значения @SuppressWarnings в Android Studio

В Qt / QML, как загружать разные изображения для разных плотностей устройств (Android)

Я использую Qt 5.4 и Qt Creator 3.3.2.

Загрузка различных изображений, в зависимости от текущей ОС, может быть выполнена с помощью

Image {source: "logo.png" } 

И следующие ресурсы

 logo.png +windows/logo.png +android/logo.png +ios/logo.png 

Если я правильно понимаю документацию, добавив

 +ios/logo.png +ios/logo@2x.png +ios/logo@3x.png 

На iOS, выберите различные изображения на основе плотности устройства.

Могу ли я использовать аналогичный механизм для загрузки разных изображений для разных тэгов Android (ldpi, mdpi, hdpi, xhdpi, …). Если да, то как должна выглядеть структура каталогов?

     Image {source: "logo" + density + ".png" } 

    А density может быть, например, S, M, L, и у вас есть logoS.png , logoM.png и logoL.png . Или вы можете использовать его для указания другого пути, а не имени изображения. Так или иначе.

    Вы можете использовать QScreen logicalDotsPerInch и выставить его в QML для определения значения density .

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

    Вы можете вычислить ppi с использованием Screen.pixelDensity QML и назначить разные изображения для разных диапазонов ppi. Примерный код можно найти в этом сообщении блога KDAB :

     property int ppi: Screen.pixelDensity*25.4 property var dir: ["MDPI","HDPI","XHDPI","XXHDPI", "XXXHDPI","XXXXHDPI"] readonly property int ppiRange:{ if (ppi>=540) 5 else if (ppi>=360) 4 else if (ppi>=270) 3 else if (ppi>=180) 2 else if (ppi>=135) 1 else 0 } BorderImage { id: scalableElement3 source: "./Images/" + dir[ppiRange] + "/image.png" width: parent.width-ppi/2 height: ppi*1.5 anchors.centerIn: parent border.left: 0.3*ppi; border.top: 0.3*ppi border.right: 0.18*ppi; border.bottom: 0.18*ppi }