Here is my procedure for making custom icons in jQM.
You need 2x png's one that is 18x18 and another that is 36x36
In your css:
//non-retina
.ui-icon-amazing {
background-image: url("custom.png");
}
//retina
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
.ui-icon-amazing {
background-image: url("custom-hd.png");
background-size: 18px 18px;
}
}
To use your new icon, which you have called 'amazing' simply use the appropriate data-icon= attribute
data-icon="amazing"
and the icon will get applied.
You get bonus points for base64 encoding your png directly into your stylesheet.