I needed to enlarge the mathematical script i in various locations in a string, i.e., not always at the same position in the string. So, here's the code that worked:
numerator = "Surrogate pair test: "
var len: Int = numerator.length
val iScript: String = "\uD835\uDCBE"
numerator = numerator + iScript + iScript + " End of test."
var styledString = SpannableString(numerator)
var sizeI: Float = 4.0f
styledString.setSpan(RelativeSizeSpan(sizeI), len, len+2, 0)
txtV_Numerator3.setText(styledString)
Notice that I put two surrogate pairs in succession in the String "numerator" for purposes of the test. I needed "len+2" in the setSpan construct in order to print the first surrogate pair 4 times normal size. Not surprisingly, using "len+4" in the setSpan construct printed both surrogate pairs 4 times normal size. Using "len+1" or "len+3" provided ugly results with large question marks.
I also noticed that changing the size (i.e.largeness) of the surrogate pair changed the vertical spacing in my user interface. That is, the change in size also changed the vertical spacing between the textView widgets of my activity. Accounting for that will require additional programming.
Conclusion: You can use the above answer to generate a different size surrogate pair as long as you allow for each surrogate pair to be 2 characters in length, and as long as you don't mind changing the vertical spacing in your user interface.