简体   繁体   中英

Android button layout adapting to screen size

I am new in Android development.I created a simple project with a simple button.I thought that the button will look the same on different screen sizes but when i previewed all screens eclipse displayed this http://imgur.com/kjEMhHx

This is the xml code

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  tools:context="com.example.businessideas.MainActivity" >

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="116dp"
    android:text="Button" />

</RelativeLayout>

Can you please help me and tell me how can i design that button look the same on all screen sizes? Thanks

On the button part change:

android:layout_width="20dp"
android:layout_height="20dp"

Use specific DP sizes to keep items the same physical size on different screen (replace 20 with your desired size).

You'll need to use the weight attribute when the button's parent is LinearLayout. That way it will force the button to have a size proportional to the screens width:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="10"
    android:orientation="horizontal">
    <Button
        android:id="@+id/button1"
        android:layout_height="wrap_content"
        android:layout_marginTop="116dp"
        android:text="Button"
        android:layout_weight="2"
        android:layout_width="0dp"/>
</LinearLayout>

Notice that if the LinearLayout 's orientation is horizontal, width will be adjusted by android (implicitly) therefore the children have width of 0dp .

Also note that now the button will take 20% (2/10) of the LinearLayout's (the parent's) width.

If you want your button to be of the same size in all different screen than you have to manually give the DP size.

like

andoird:layout_width = "20dp"
android:layout_height = "20dp"

You can also place your button at specific location by changing your relative layout to linear layout.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM