Android, холст и экраны - PullRequest
0 голосов
/ 17 мая 2011

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

Если я создаю холст в Photoshop 800x480px (240ppi) и создаю логотип на этом холсте размером 282 x 121 пикселей, я не могу понять, почему при отображении изображения он занимает 3/4 экрана в моем эмуляторе с те же 800x480px.

Код, который я использую для отображения логотипа, следующий

Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.logo);

//in the onDraw
canvas.drawBitmap(logo, 0, 0, null);

Заранее спасибо!


Возможное решение

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

BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;

//Load images
logo = BitmapFactory.decodeResource(getResources(), R.drawable.logo, options);

1 Ответ

1 голос
/ 17 мая 2011

Изображение, вероятно, занимало только 3/4 экрана в эмуляторе из-за предварительного масштабирования, которое иногда делает Android.

Ознакомьтесь с этой статьей о том, как обрабатывать несколько разрешений и размеров экрана.

Вы можете попробовать поместить drawable в каталог 'res / drawable-mdpi /' или'res / drawable-ldpi /' для различения экранов средней и низкой плотности.Другой вариант - поместить его в каталог res / drawable-nodpi /, чтобы предотвратить любое предварительное масштабирование.Я даже поместил некоторые изображения в папку «res / raw», чтобы получить тот же эффект.

Однако, если ваш текущий метод работает, сделайте это!

...