У моего приложения есть UIWebView, который обслуживает местный контент. Если я возьму изображение размера сетчатки и использую его в качестве фона для тела, я смогу его правильно масштабировать, используя свойство CSS -webkit-background-size
. Это дает мне четкое, четкое изображение на iPhone 4.UIWebView w/HTML5 Canvas & Retina Display
Тег HTML5 Canvas не настолько дружелюбен. Когда я использую команду drawImage
, чтобы поместить одно и то же изображение размера сетчатки в холст HTML5, это гигантский - за гранью физического экрана. Это код, я использую:
ctx.drawImage(retinaImage, 0, 0)
Если я пытаюсь размещение высоты и ширины параметров на drawImage
, изображение масштабируется до размеров экрана, но это блочная и некачественно. Не хрустящий, как фон CSS.
Есть ли трюк, который я могу использовать для холста HTML5, который эквивалентен свойству CSS -webkit-background-size
?
Спасибо!
Update:
Вот окончательный код, который я использовал, чтобы решить эту проблему. Надеюсь, что это помогает кто-то в будущем:
if (window.devicePixelRatio == 2) {
myCanvas.setAttribute('height', window.innerHeight * 2);
myCanvas.setAttribute('width', window.innerWidth * 2);
ctx.scale(2, 2);
} else {
myCanvas.setAttribute('height', window.innerHeight);
myCanvas.setAttribute('width', window.innerWidth);
}
Спасибо, Роб. Ваш ответ в основном соответствует тому, что я придумал через несколько дней после того, как я изначально задал вопрос. Отлично сработано. – Axeva 2011-03-26 02:08:57