I haven't found a certain answer regarding this setTextSize() problem. So I have done some experiments of my own and found that density plays a key role here. You need to know what your device's density, before you attempt to use setTextSize(). If you don't get it, or if you get it wrong, then your texts will have funny and irritating size. Many times I have tried to increase the textsize by adding 1 or 2, but actually making the text drastically smaller!
After a full half day trial and error, I have come to the following solution that works for low, mid and high density devices equally.
float size = textView.getTextSize(); // get the textsize of the TextView in pixels
float density = getApplicationContext().getResources().getDisplayMetrics().density; // get the density of your device. Important!!
textView.setTextSize((size/density)+1); //increase the textsize by 1
textView.setTextSize((size/density)-1); //decrease the textsize by 1
Try it. I hope you won't be disappointed.