修复Android-Application的布局,适用于不同的设备

时间:2014-04-17 06:21:29

标签: android android-layout

我的问题是如何修复Android-Application的布局。因为当我在一台设备上运行我的应用程序时它看起来不错但在另一台模拟器上它看起来很小。我想看看所有设备相同

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_vertical|center_horizontal"
    android:orientation="vertical" 
     android:background="@drawable/axelorbackground">

    <RelativeLayout
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Axelor CRM"
            android:textColor="#CCFF99"
            android:textSize="20sp" />

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView1"
            android:src="@drawable/logoaxelor" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="center" >

        <Button
            android:id="@+id/btnsynchronize"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
               android:textColor="#CCFF99"
            android:background="@android:color/transparent"
            android:drawableTop="@drawable/sync"
            android:text="Synchronization" />
    </RelativeLayout>

    <ScrollView
        android:id="@+id/container"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/footer"
        android:layout_below="@id/header"
        android:layout_marginTop="50dp" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center_horizontal"
            android:orientation="vertical" >

            <TableLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <TableRow android:padding="10dp" >

                    <TabWidget android:padding="5dp" >

                        <Button
                            android:id="@+id/btntickets"
                            android:layout_width="110dp"
                            android:layout_height="110dp"
                            android:background="@drawable/homebuttons"
                            android:drawableTop="@drawable/ticket"
                            android:text="Tickets"
                            android:textColor="#FFFFFF"
                            android:textSize="12dp" />
                    </TabWidget>

                    <TabWidget android:padding="5dp" >

                        <Button
                            android:id="@+id/btnOpportunity"
                            android:layout_width="110dp"
                            android:layout_height="110dp"
                            android:background="@drawable/homebuttons"
                            android:drawableTop="@drawable/opportunity"
                            android:text="Opportunity"
                             android:textColor="#FFFFFF"
                            android:textSize="12dp" />
                    </TabWidget>
                </TableRow>

                <TableRow android:padding="10dp" >

                    <TabWidget android:padding="5dp" >

                        <Button
                            android:id="@+id/btnMeetings"
                            android:layout_width="110dp"
                            android:layout_height="110dp"
                            android:background="@drawable/homebuttons"
                            android:drawableTop="@drawable/meetings"
                            android:text="Meetings"
                           android:textColor="#FFFFFF"
                            android:textSize="12dp" />
                    </TabWidget>

                    <TabWidget android:padding="5dp" >

                        <Button
                            android:id="@+id/btnleads"
                            android:layout_width="110dp"
                            android:layout_height="110dp"
                            android:background="@drawable/homebuttons"
                            android:drawableTop="@drawable/lead"
                            android:text="Leads"
                         android:textColor="#FFFFFF"
                            android:textSize="12dp" />
                    </TabWidget>
                </TableRow>

                <TableRow android:padding="10dp" >

                    <TabWidget android:padding="5dp" >

                        <Button
                            android:id="@+id/btnTask"
                            android:layout_width="110dp"
                            android:layout_height="110dp"
                            android:background="@drawable/homebuttons"
                            android:drawableTop="@drawable/task"
                            android:text="Task"
                             android:textColor="#FFFFFF"
                            android:textSize="12dp" />
                    </TabWidget>

                    <TabWidget android:padding="5dp" >

                        <Button
                            android:id="@+id/btnCalls"
                            android:layout_width="110dp"
                            android:layout_height="110dp"
                            android:background="@drawable/homebuttons"
                            android:drawableTop="@drawable/calls"
                            android:text="Calls"
                         android:textColor="#FFFFFF"
                            android:textSize="12dp" />
                    </TabWidget>
                </TableRow>
            </TableLayout>
        </LinearLayout>
    </ScrollView>

</RelativeLayout>

4 个答案:

答案 0 :(得分:1)

您的问题尚不清楚,据我所知,请尽量避免使用xml代码中的布局的静态宽度或高度,而是使用fill parentwrap content

答案 1 :(得分:1)

所有设备都有自己的屏幕比例。因此,如果您要为一个设备进行静态布局,那么在其他设备中它将不适合。因此,使用它的宽度和高度使其动态化为&#34; wrap-content&#34;,&#34; fill-parent&#34;或&#34;匹配父母&#34;。

答案 2 :(得分:1)

你可以动态地实现它。

步骤1-使用

获取宽度和高度

显示display = getWindowManager()。getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight();

DisplayMetrics metrics = new DisplayMetrics(); 。getWindowManager()getDefaultDisplay()getMetrics(指标);

height = metrics.heightPixels; width = metrics.widthPixels;

然后根据您的视图需要划分宽度和高度并设置它。

像:

text view.setWidth(height / 2); text view.sethight(width / 2);

所以你必须在活动类中动态地完成它。

希望它对你有用.. :))

答案 3 :(得分:0)

在Android中有两种支持多个屏幕的方式:

  1. 为普通,大型(7英寸)和xlarge(10英寸)屏幕制作单独的布局。 http://developer.android.com/guide/practices/screens_support.html

  2. 使用尺寸拉伸应用程序而不创建新布局,如下所示:
    res/values/dimensions.xml
    res/values-sw600dp/dimensions.xml→7+英寸
    res/values-sw720dp/dimensions.xml→10 +英寸

  3. 第一种方法很简单,但效率不高,因为它需要为每种屏幕尺寸创建和更改布局,所以我建议使用第二种方法。