2013-03-25 2 views
2

В моем приложении я столкнулся с удивительной проблемой.android anydensity in manifest

Когда я положил anyDensity тег false в манифесте мое приложение работает нормально, но всякий раз, когда я делаю это, мое приложение действует размытым, я создаю некоторые растровые изображения в своем приложении. любая проблема, если я делаю anyDensity тег false в манифесте, тогда многие устройства не смогут увидеть мое приложение на playstore, Любая помощь будет оценена.

<supports-screens 
    android:anyDensity="false" 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" /> 

ответ

4

Не слишком много информации в исходном посте. В документации указано:

Указывает, включает ли приложение ресурсы для размещения любой плотности экрана. Для приложений, поддерживающих Android 1.6 (API уровень 4) и выше, это по умолчанию «истина», и вы не должны устанавливать «ложь», если не будете абсолютно уверены, что для работы приложения необходимо, чтобы ваше приложение работало . Единственный раз, когда это может быть необходимо Disable это, если ваше приложение непосредственно манипулирует растровые изображения

Итак, мой первый вопрос вы включаете все ресурсы для размещения любой плотности экрана (я. Е. MDPI, ИПЧР, xhdpi, xxhdpi)? Если да, то все будет хорошо. После последних предложений цитаты выше я пришел к этому link.

Он говорит:

Приложение может отключить предварительное масштабирование, установив андроид: anyDensity к «ложным» в манифесте или программно для растрового изображения путем установки inScaled к «ложным».

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

И, наконец, есть this раздел. Может быть, вам будет полезно правильно обрабатывать ваши собственные растровые изображения? В частности, этот пункт звучит как ваша проблема:

Если ваше приложение создает растровое изображение в памяти (объект Bitmap), система предполагает, что битовая карта предназначена для экрана средней плотности исходного, по умолчанию , и автоматически масштабирует растровое изображение при рисовании времени. Система применяет «автомасштабирование» к растровому изображению, когда растровое изображение имеет неопределенные свойства плотности. Если вы неправильно учитываете плотность экрана текущего устройства и задаете свойства растрового изображения, автомасштабирование может привести к тому, что артефакты масштабирования будут такими же , что и при отсутствии альтернативных ресурсов.

0

Вы можете использовать инструмент AAPT, включенный в Android SDK, чтобы определить, как Google Play будет фильтровать приложения, основываясь на своих заявленных функций и разрешений. Для этого запустите aapt с помощью команды dump badging. Он проанализирует манифест приложения и применит те же правила, которые используются Google Play, чтобы определить функции, которые требуется вашему приложению. Для получения подробной информации об этом инструменте, пожалуйста, посетите http://developer.android.com/guide/topics/manifest/uses-feature-element.html#testing