Android:如何调整布局大小以适应各种屏幕

时间:2016-07-16 23:57:23

标签: android android-layout

这是我的普通/ activity.xml布局文件(我只发布了normal / activity.xml,因为其他.xmls非常相似,只有一些大小在按钮中更改,在dp中):

<?xml version="1.0" encoding="utf-8"?>
<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"
android:background="@color/activity_main_background"
tools:context="com.jj.calculator.MainActivity">


<EditText
    android:id="@+id/screen"
    android:background="@drawable/rounded_area"
    android:alpha="0.9"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="2dp"
    android:gravity="right|bottom"
    android:foregroundGravity="right|bottom"
    android:fontFamily="sans-serif-thin"
    android:textColor="@color/dark_grey"
    android:textSize="45sp"
    android:text="@string/screen_text"
    android:textIsSelectable="true"
    android:lines="1"/>

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/screen"
    android:layout_marginTop="6dp"
    android:layout_marginLeft="4dp"
    android:foregroundGravity="center_horizontal">

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="0"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="7"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>

        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="1"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="8"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="2"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="9"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="3"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="/"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>

    </TableRow>
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="0"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="4"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>

        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="1"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="5"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="2"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="6"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="3"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="*"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>

    </TableRow>
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="0"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="1"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="1"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="2"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="2"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="3"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="3"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="-"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>

    </TableRow>
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="0"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="0"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>

        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="1"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="("
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="2"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text=")"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="3"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="+"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>

    </TableRow>
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="0"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="."
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>

        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="1"
            android:layout_margin="6dp"
            android:background="@drawable/rounded_button"
            android:alpha="0.85"
            android:text="^"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="2"
            android:layout_margin="6dp"
            android:background="@drawable/c_button"
            android:alpha="0.85"
            android:text="C"
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>
        <Button
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_column="3"
            android:layout_margin="6dp"
            android:background="@drawable/equal_button"
            android:alpha="0.85"
            android:text="="
            android:textSize="40sp"
            android:fontFamily="sans-serif-thin"/>

    </TableRow>
</TableLayout>

</RelativeLayout>

我还有google“large”和“xlarge”屏幕尺寸指定的大/ activity.xml和xlarge / activity.xml布局。但是当我编辑我的.xml文件时,我只得到一个屏幕作为代表样本。因此,我的布局仅在屏幕尺寸中正确显示,这些屏幕尺寸具有为每个.xml文件显示的屏幕示例的确切大小。如何使我的应用程序在所有不同的屏幕尺寸?我感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我猜你希望你的应用程序在大屏幕和超大屏幕上查看时看起来完全一样。我有一个类似的情况,我通过使用,并通过使用具有不同资源限定符的几个值文件夹,为我的应用程序使用一组布局文件完成它。在我的例子中,我选择使用最小的宽度限定符而不是大型和超大型限定符。例如,因为我希望我的应用程序始终处于横向模式,所以我创建了一个layout-land文件夹,我的所有布局文件都是在。然后我创建了几个值文件夹,每个文件夹上有两个资源限定符。第一个资源限定符是最小宽度限定符,第二个是密度。例如,第一个值文件夹是values-sw320dp-mdpi。我使用了三个最小的组合,320,600和720.对于每个组合,我为mdpi-xxxhdpi中的不同密度创建了单独的值文件夹。是的,这是很多资源文件夹,但它允许你有一个尺寸文件,它将根据你需要关注的两个因素,dp中的设备大小,专门调整和定位所有元素的尺寸和位置和设备密度