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:
@@ -50,7 +50,7 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
* the renderer was locked.
|
* the renderer was locked.
|
||||||
*/
|
*/
|
||||||
pendingRedraw: false,
|
pendingRedraw: false,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor: OpenLayers.Renderer.Canvas
|
* Constructor: OpenLayers.Renderer.Canvas
|
||||||
*
|
*
|
||||||
@@ -224,8 +224,15 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
// TODO: check that we haven't moved
|
// TODO: check that we haven't moved
|
||||||
var canvas = this.canvas;
|
var canvas = this.canvas;
|
||||||
canvas.globalAlpha = opacity;
|
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(
|
canvas.drawImage(
|
||||||
img, x, y, width, height
|
img, x*factor, y*factor, width*factor, height*factor
|
||||||
);
|
);
|
||||||
if (this.hitDetection) {
|
if (this.hitDetection) {
|
||||||
this.setHitContextStyle("fill", featureId);
|
this.setHitContextStyle("fill", featureId);
|
||||||
@@ -541,7 +548,7 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
}
|
}
|
||||||
this.setCanvasStyle("reset");
|
this.setCanvasStyle("reset");
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method: getLocalXY
|
* Method: getLocalXY
|
||||||
* transform geographic xy into pixel xy
|
* transform geographic xy into pixel xy
|
||||||
@@ -680,3 +687,11 @@ OpenLayers.Renderer.Canvas.LABEL_FACTOR = {
|
|||||||
"t": 0,
|
"t": 0,
|
||||||
"b": -1
|
"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;
|
||||||
|
|||||||
Reference in New Issue
Block a user