darja
darja

Reputation: 5025

Making text same size on different devices

I wonder how to make application look the same on different devices. I have read Supporting Multiple Screens many times but I still can't understand how to live.

Here is a sample layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Hello World, MyActivity"
            android:textSize="30sp"
            />
</LinearLayout>

There is Galaxy S II (480x800) and Sensation XE (540x960). They are both hdpi, physical screen size is almost the same. I expected to see the same looking on both devices but in fact text on 540x960 is smaller then on 480x800: enter image description here (left is 480x800, right is 540x960)

I tried to specify text size as dimension resource and make separate folder values-w540dp but it took no effect.

How do you guys make your application look the same on different hdpi devices?

Upvotes: 4

Views: 1470

Answers (3)

Bill Mote
Bill Mote

Reputation: 12823

2 Sites that might be helpful as there are some nuggets in both related to your problem, however, neither is an exact 1-2-3 how to correct the issue you're seeing:

Upvotes: 0

Joep_H
Joep_H

Reputation: 362

Have a look at metrics , if you specify your textsize in dp (Density-independent pixels) it should work. The default size for text should be around 14dp. (TextAppearance.small)

Upvotes: 0

Ercan
Ercan

Reputation: 3705

android:textAppearance="?android:attr/textAppearanceLarge"

android:textAppearance="?android:attr/textAppearanceMedium"

android:textAppearance="?android:attr/textAppearanceSmall"

These atributes may solve your problem here.Otherwise you have to setup your layout dynamically with some ratios(or factors you generate like :textSize=factor*height) using your screen height and width.

Upvotes: 3

Related Questions