working around drawImage issue on Android 2.1 devices. r=erilem (closes #3243)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11868 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
ahocevar
2011-04-04 15:12:44 +00:00
parent 8596bbc779
commit 5995202f3a

View File

@@ -224,8 +224,15 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
// TODO: check that we haven't moved
var canvas = this.canvas;
canvas.globalAlpha = opacity;
var factor = OpenLayers.Renderer.Canvas.drawImageScaleFactor ||
(OpenLayers.Renderer.Canvas.drawImageScaleFactor =
/android 2.1/.test(navigator.userAgent.toLowerCase()) ?
// 320 is the screen width of the G1 phone, for which
// drawImage works out of the box.
320 / window.screen.width : 1
);
canvas.drawImage(
img, x, y, width, height
img, x*factor, y*factor, width*factor, height*factor
);
if (this.hitDetection) {
this.setHitContextStyle("fill", featureId);
@@ -680,3 +687,11 @@ OpenLayers.Renderer.Canvas.LABEL_FACTOR = {
"t": 0,
"b": -1
};
/**
* Constant: OpenLayers.Renderer.Canvas.drawImageScaleFactor
* {Number} Scale factor to apply to the canvas drawImage arguments. This
* is always 1 except for Android 2.1 devices, to work around
* http://code.google.com/p/android/issues/detail?id=5141.
*/
OpenLayers.Renderer.Canvas.drawImageScaleFactor = null;