Ошибка с разным размером экрана в Android - PullRequest
0 голосов
/ 24 ноября 2011

у меня есть класс gifview, который загружает gif в зависимости от размера экрана следующим образом:

if((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL){
        gif = "anim_cerca_ldpi.gif";
    }else if((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL){
        gif = "anim_cerca_mdpi.gif";
    }else{
        gif = "anim_cerca_hdpi.gif";
    }

Проблема в том, что я пробую это на galaxy S II, а полученное изображение - anim_cerca_ldpi.gif, поэтому оно маленького размера. Можете ли вы помочь мне найти ошибку?

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Гораздо лучший способ сделать это - создать каталоги типа res/drawable-ldpi, res/drawable-mdpi и т. Д. И поместить эти файлы в соответствующие каталоги с именем anim_cerca.gif. Затем просто загрузите их, загрузив идентификатор ресурса R.drawable.anim_cerca. Он автоматически выберет подходящий для вашего устройства.

PS: Вы проверяете экран размер , но, похоже, выбираете ресурсы, определенные для другого экрана плотности . Это тоже разные вещи.

0 голосов
/ 24 ноября 2011

Вы не должны решать программно в этом случае. (Я говорю так из-за того, что вы хотите достичь с помощью кода, который вы разместили. Возможно, в других случаях вам понадобится программный выбор)

Пытались ли вы разбить ваши чертежи на соответствующие папки (drawable-hdpi | mdpi | ldpi)? если вы сделаете это, ОС Android загрузит нужный вам ресурс.

...