Вы сказали, что отрисовка из вашей папки /res
. В какой папке он находится?
/res/drawable
/res/drawable-mdpi
/res/drawable-hdpi
и т.д ..
А какова плотность устройства, на котором вы тестируете? Это Nexus S с общей плотностью 240 точек на дюйм? Потому что, если исходный чертеж находится в папке drawable-mdpi
, а вы тестируете устройство с разрешением 240 точек на дюйм, то система Android автоматически увеличит масштабирование с коэффициентом 1.5
, чтобы физический размер соответствовал базовому уровню. плотность устройства при 160dpi.
Когда вы вызываете getIntrinsicWidth()
, возвращается размер, который рисующий хочет, чтобы был после того, как Android масштабирует чертеж. Вы заметите, что 2880 = 1920 * 1.5
Если вы поместили чертеж в /res/drawable
, то система Android рассматривает эти чертежи как предназначенные для устройств mdpi, таким образом, масштабирование в вашем Nexus S. Если это было предназначено для экранов hdpi, и вы не хотите, чтобы это масштабировалось, попробуйте разместить это в drawable-hdpi