title: Android canvas rotation: need to rotate *by* x degrees not *to* x degrees
body: <p>The documentation for the rotate methods in Canvas states that the degrees parameter is "the amount to rotate, in degrees".  However, in my experience this is misleading.  For example, if I call rotate(45) when my bitmap is in the canonically upright orientation (i.e. theta = 0, which is at 12:00) then the bitmap dutifully rotates 45 degrees with respect to 0.  If I make a second call to rotate(45), the image does not [appear to] move.  If I then make a call to rotate(-45), the bitmap does not return to its original orientation but is instead rotated -45 degrees with respect to 0.  In other words, the degrees parameter is absolute ("rotate to 45 degrees"), not relative ("rotate by 45 degrees") as the documentation implies.  This is precisely what I don't want.</p>
  
  <p>From a given orientation, I want to be able to rotate my bitmap <em>BY</em> +/- x degrees, where + is of course a clockwise rotation.  One way to fake this, I suppose, would be to make wherever I rotate to the "new 0" (i.e. it effectively occupies 12:00) for the purposes of the next rotation.  My question is: how do I do this, or, is there a better way to accomplish what I want?</p>
  
  <p>Many thanks.</p>