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 isTypedValue.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.