Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7702413
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T23:13:17+00:00 2026-05-31T23:13:17+00:00

I know, it was discussed already 1000 times, but I can’t adjust the text

  • 0

I know, it was discussed already 1000 times, but I can’t adjust the text size for different screen sizes. I try to use ‘sp’ as size units in my custom style:

<style name="CustumButtonStyle" parent="@android:style/Widget.Button">
    ...
    <item name="android:textSize">30sp</item>
    ...
</style>

In 2.7 QVGA it looks OK:

2.7QVGA 30sp

But in 7in WSVGA it looks like this:

7in WSVGA 30sp

I’ve tried to use both ‘sp’ and ‘dp’ with the same result.

Could you please explain how to make these buttons look the same on any screen?

The full custom button style

<style name="CustumButtonStyle" parent="@android:style/Widget.Button">
    <item name="android:background">@drawable/custom_button</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_margin">3dp</item>
    <item name="android:textColor">#ffffff</item>
    <item name="android:gravity">center</item>
    <item name="android:textSize">30sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:shadowColor">#000000</item>
    <item name="android:shadowDx">1</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">2</item>
</style>

And in my application theme I have

<item name="android:buttonStyle">@style/CustumButtonStyle</item>

And there is my layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:background="@drawable/grid"
android:gravity="center"
android:orientation="vertical" android:layout_height="fill_parent">

<Button
    android:id="@+id/buttonContinue"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center"
    android:gravity="center"
    android:text="@string/continue_game" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/>



<Button
    android:id="@+id/buttonNewGame"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/buttonContinue"
    android:layout_alignRight="@+id/buttonContinue"
    android:layout_below="@+id/buttonContinue"
    android:layout_gravity="center"
    android:gravity="center"
    android:text="@string/new_game" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/>



<Button
    android:id="@+id/ButtonAbout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/buttonNewGame"
    android:layout_alignRight="@+id/buttonNewGame"
    android:layout_below="@+id/buttonNewGame"
    android:layout_gravity="center"
    android:gravity="center"
    android:text="@string/about" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/>

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T23:13:18+00:00Added an answer on May 31, 2026 at 11:13 pm

    @forcelain I think you need to check this Google IO Pdf for Design. In that pdf go to Page No:77 in which you will find how there suggesting for using dimens.xml for different devices of android for Example see Below structure :

    res/values/dimens.xml
    
    res/values-small/dimens.xml
    
    res/values-normal/dimens.xml
    
    res/values-large/dimens.xml
    
    res/values-xlarge/dimens.xml
    

    for Example you have used below dimens.xml in values.

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

    In other values folder you need to change values for your text size .

    Note: As indicated by @espinchi the small, normal, large and xlarge have been deprecated since Android 3.2 in favor of the following:

    Declaring Tablet Layouts for Android 3.2

    For the first generation of tablets running Android 3.0, the proper
    way to declare tablet layouts was to put them in a directory with the
    xlarge configuration qualifier (for example, res/layout-xlarge/). In
    order to accommodate other types of tablets and screen sizes—in
    particular, 7″ tablets—Android 3.2 introduces a new way to specify
    resources for more discrete screen sizes. The new technique is based
    on the amount of space your layout needs (such as 600dp of width),
    rather than trying to make your layout fit the generalized size groups
    (such as large or xlarge).

    The reason designing for 7″ tablets is tricky when using the
    generalized size groups is that a 7″ tablet is technically in the same
    group as a 5″ handset (the large group). While these two devices are
    seemingly close to each other in size, the amount of space for an
    application’s UI is significantly different, as is the style of user
    interaction. Thus, a 7″ and 5″ screen should not always use the same
    layout. To make it possible for you to provide different layouts for
    these two kinds of screens, Android now allows you to specify your
    layout resources based on the width and/or height that’s actually
    available for your application’s layout, specified in dp units.

    For example, after you’ve designed the layout you want to use for
    tablet-style devices, you might determine that the layout stops
    working well when the screen is less than 600dp wide. This threshold
    thus becomes the minimum size that you require for your tablet layout.
    As such, you can now specify that these layout resources should be
    used only when there is at least 600dp of width available for your
    application’s UI.

    You should either pick a width and design to it as your minimum size,
    or test what is the smallest width your layout supports once it’s
    complete.

    Note: Remember that all the figures used with these new size APIs are
    density-independent pixel (dp) values and your layout dimensions
    should also always be defined using dp units, because what you care
    about is the amount of screen space available after the system
    accounts for screen density (as opposed to using raw pixel
    resolution). For more information about density-independent pixels,
    read Terms and concepts, earlier in this document. Using new size
    qualifiers

    The different resource configurations that you can specify based on
    the space available for your layout are summarized in table 2. These
    new qualifiers offer you more control over the specific screen sizes
    your application supports, compared to the traditional screen size
    groups (small, normal, large, and xlarge).

    Note: The sizes that you specify using these qualifiers are not the
    actual screen sizes. Rather, the sizes are for the width or height in
    dp units that are available to your activity’s window. The Android
    system might use some of the screen for system UI (such as the system
    bar at the bottom of the screen or the status bar at the top), so some
    of the screen might not be available for your layout. Thus, the sizes
    you declare should be specifically about the sizes needed by your
    activity—the system accounts for any space used by system UI when
    declaring how much space it provides for your layout. Also beware that
    the Action Bar is considered a part of your application’s window
    space, although your layout does not declare it, so it reduces the
    space available for your layout and you must account for it in your
    design.

    Table 2. New configuration qualifiers for screen size (introduced in
    Android 3.2). Screen configuration Qualifier values Description
    smallestWidth swdp

    Examples: sw600dp sw720dp

    The fundamental size of a screen, as indicated by the shortest
    dimension of the available screen area. Specifically, the device’s
    smallestWidth is the shortest of the screen’s available height and
    width (you may also think of it as the “smallest possible width” for
    the screen). You can use this qualifier to ensure that, regardless of
    the screen’s current orientation, your application’s has at least
    dps of width available for its UI.

    For example, if your layout requires that its smallest dimension of
    screen area be at least 600 dp at all times, then you can use this
    qualifier to create the layout resources, res/layout-sw600dp/. The
    system will use these resources only when the smallest dimension of
    available screen is at least 600dp, regardless of whether the 600dp
    side is the user-perceived height or width. The smallestWidth is a
    fixed screen size characteristic of the device; the device’s
    smallestWidth does not change when the screen’s orientation changes.

    The smallestWidth of a device takes into account screen decorations
    and system UI. For example, if the device has some persistent UI
    elements on the screen that account for space along the axis of the
    smallestWidth, the system declares the smallestWidth to be smaller
    than the actual screen size, because those are screen pixels not
    available for your UI.

    This is an alternative to the generalized screen size qualifiers
    (small, normal, large, xlarge) that allows you to define a discrete
    number for the effective size available for your UI. Using
    smallestWidth to determine the general screen size is useful because
    width is often the driving factor in designing a layout. A UI will
    often scroll vertically, but have fairly hard constraints on the
    minimum space it needs horizontally. The available width is also the
    key factor in determining whether to use a one-pane layout for
    handsets or multi-pane layout for tablets. Thus, you likely care most
    about what the smallest possible width will be on each device.
    Available screen width wdp

    Examples: w720dp w1024dp

    Specifies a minimum available width in dp units at which the resources
    should be used—defined by the value. The system’s corresponding
    value for the width changes when the screen’s orientation switches
    between landscape and portrait to reflect the current actual width
    that’s available for your UI.

    This is often useful to determine whether to use a multi-pane layout,
    because even on a tablet device, you often won’t want the same
    multi-pane layout for portrait orientation as you do for landscape.
    Thus, you can use this to specify the minimum width required for the
    layout, instead of using both the screen size and orientation
    qualifiers together. Available screen height hdp

    Examples: h720dp h1024dp etc.

    Specifies a minimum screen height in dp units at which the resources
    should be used—defined by the value. The system’s corresponding
    value for the height changes when the screen’s orientation switches
    between landscape and portrait to reflect the current actual height
    that’s available for your UI.

    Using this to define the height required by your layout is useful in
    the same way as wdp is for defining the required width, instead of
    using both the screen size and orientation qualifiers. However, most
    apps won’t need this qualifier, considering that UIs often scroll
    vertically and are thus more flexible with how much height is
    available, whereas the width is more rigid.

    While using these qualifiers might seem more complicated than using
    screen size groups, it should actually be simpler once you determine
    the requirements for your UI. When you design your UI, the main thing
    you probably care about is the actual size at which your application
    switches between a handset-style UI and a tablet-style UI that uses
    multiple panes. The exact point of this switch will depend on your
    particular design—maybe you need a 720dp width for your tablet layout,
    maybe 600dp is enough, or 480dp, or some number between these. Using
    these qualifiers in table 2, you are in control of the precise size at
    which your layout changes.

    For more discussion about these size configuration qualifiers, see the
    Providing Resources document. Configuration examples

    To help you target some of your designs for different types of
    devices, here are some numbers for typical screen widths:

    320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
    480dp: a tweener tablet like the Streak (480x800 mdpi).
    600dp: a 7” tablet (600x1024 mdpi).
    720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
    

    Using the size qualifiers from table 2, your application can switch
    between your different layout resources for handsets and tablets using
    any number you want for width and/or height. For example, if 600dp is
    the smallest available width supported by your tablet layout, you can
    provide these two sets of layouts:

    res/layout/main_activity.xml # For handsets
    res/layout-sw600dp/main_activity.xml # For tablets

    In this case, the smallest width of the available screen space must be
    600dp in order for the tablet layout to be applied.

    For other cases in which you want to further customize your UI to
    differentiate between sizes such as 7” and 10” tablets, you can define
    additional smallest width layouts:

    res/layout/main_activity.xml # For handsets (smaller than
    600dp available width) res/layout-sw600dp/main_activity.xml # For 7”
    tablets (600dp wide and bigger) res/layout-sw720dp/main_activity.xml

    For 10” tablets (720dp wide and bigger)

    Notice that the previous two sets of example resources use the
    “smallest width” qualifier, swdp, which specifies the smallest of
    the screen’s two sides, regardless of the device’s current
    orientation. Thus, using swdp is a simple way to specify the
    overall screen size available for your layout by ignoring the screen’s
    orientation.

    However, in some cases, what might be important for your layout is
    exactly how much width or height is currently available. For example,
    if you have a two-pane layout with two fragments side by side, you
    might want to use it whenever the screen provides at least 600dp of
    width, whether the device is in landscape or portrait orientation. In
    this case, your resources might look like this:

    res/layout/main_activity.xml # For handsets (smaller than
    600dp available width) res/layout-w600dp/main_activity.xml #
    Multi-pane (any screen with 600dp available width or more)

    Notice that the second set is using the “available width” qualifier,
    wdp. This way, one device may actually use both layouts, depending
    on the orientation of the screen (if the available width is at least
    600dp in one orientation and less than 600dp in the other
    orientation).

    If the available height is a concern for you, then you can do the same
    using the hdp qualifier. Or, even combine the wdp and hdp
    qualifiers if you need to be really specific.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I know this question might have already been discussed a thousands of times but
I know this subject has been discussed here a bunch of times already. But
I know it has been discussed a lot a times but I can't find
I know this has been discussed a lot of times but is there any
I know try catch have been discussed a lot but I haven’t found a
I know that my question has already been discussed on StackOverflow but i found
I know this has been discussed here many times, but none of the answers
I know it have been discussed already at some point. But after searching there
I know this issue already discussed (include there), and no one time. But, unfortunately,
I know the OCR question with Python has already been discussed many times. However

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.