17. A computing device, comprising: a processor; memory coupled to the processor; and a touch sensitive surface coupled to the processor, wherein the processor is configured with processor-executable instructions to perform processes comprising: receiving a series of coordinates of a series of user touches on the touch sensitive surface; correlating a plurality of keys with the received series of coordinates; determining an average of received coordinates correlated with each of the plurality of keys, wherein determining the average of received coordinates correlated with each of the plurality of keys comprises: calculating a variability of key-strike locations for each of the plurality of keys; determining when the calculated variability of key-strike locations for each of the plurality of keys has plateaued; and calculating an average of coordinate key strike locations for each of the plurality of keys once the variability of key strike locations has plateaued; saving the calculated average coordinates for each of the plurality of keys in keypad layout data; and generating an image of a virtual keypad using the keypad layout data.
19. The computing device of claim 17 , wherein the processor is configured with processor-executable instructions to perform further processes comprising: determining a statistical envelope based upon received coordinates for each of the plurality of keys by calculating standard deviations about the calculated average coordinates for each of the plurality of keys; and saving the statistical envelope for each of the plurality of keys in the keypad layout data.