user3178137
user3178137

Reputation: 963

How to get dimensions in dp correctly for android?

I am trying to create textView programatically, but I am unable to setTextSize without any issues.

textViewMessage.setTextSize(TypedValue.COMPLEX_UNIT_DIP, getResources().getDimension(R.dimen.main_stripe_small_text));

So, I am trying to get dimensions from dimen file (15dp), but it when textView is displayed, text is much larger. When changing line to this:

textViewMessage.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);

everything is displayed like it should be. Any ideas?

Upvotes: 1

Views: 569

Answers (1)

Padma Kumar
Padma Kumar

Reputation: 20031

textViewMessage.setTextSize(TypedValue.COMPLEX_UNIT_DIP, getResources().getDimension(R.dimen.main_stripe_small_text));

//you are setting R.dimen.main_stripe_small_text as 15dp

when you are reading is will give you 22.5px for hdpi and 30px for xhdpi

again you are trying to do textViewMessage.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 22.5px);

now you will get 33.75px for hdpi and 45px for xhdpi

Solu:

you need to put 15px in your R.dimen.main_stripe_small_text

or

just set textsize as

`textViewMessage.setTextSize(getResources().getDimension(R.dimen.main_stripe_small_text)); 

Upvotes: 2

Related Questions