Dynamic Text size change according to tablet Dynamic Text size change according to tablet android android

Dynamic Text size change according to tablet


After checking some resources I finally came up with the following solution:Within the layout-xml I define the size of the button-text witha dimension declaration:

android:textSize="@dimen/campaign_textfontsize"

I created a dimens.xml in the "/values"-subdirectory with the corresponding value

<?xml version="1.0" encoding="utf-8"?><resources>    <dimen name="campaign_textfontsize">18dp</dimen></resources>

then I created a second values-folder "/values-sw720dp" and copied the old dimens.xml into it. In this dimens.xml I adapted the fontsize value:

<?xml version="1.0" encoding="utf-8"?><resources>    <dimen name="campaign_textfontsize">24dp</dimen></resources>

Based on the current screensize android selects the proper dimens-value.So without any code, font is adapted to the display- (and display related button-) size.

Hope this helps...


I was Having Same Problem but what i realized sp/db are not efficient for dealing with this kind of problem, I handled my alignment and font size related stuff programtically.

here are the steps, how i handled this problem.

  • Calculate Screen Width and Height of Your device
  • Use Set TextView.setTextSize(unit, size), where the unit parameter is TypedValue.COMPLEX_UNIT_PX and the size parameter is percent of the total width of your screen. Normally, for me, .5% of total width for font is suitable. You can experiment by trying other total width percentages, such as 0.4% or 0.3%.

This way your font size will be always suitable for each and every text/screen size.


no need to change textsize dynamically use sp for textsize it will automatically arrange the text size depending on the screen resolutions..like in phone.

android:textSize="10sp"