Android没有调整大小?

时间:2012-11-26 14:33:03

标签: android layout scaling

我正在Eclipse中的4in模拟器上开发我的应用程序。我的手机是4.6英寸的Android设备,当我在那里测试时,内容没有正确缩放。

看起来手机会将内容保持在相同的大小,它只是将所有内容都移动起来,并留出额外的空间。

根据我的阅读,我认为只要我使用dp而不是in,就应该保持相同的布局。这是否意味着我的图像也必须是dp?

有什么建议吗?

编辑:

以下是一些代码:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/tfltestbg2"
    android:orientation="vertical" >

    <ImageView
            android:layout_width="fill_parent"
            android:layout_height="55dp"
            android:background="@drawable/tfl_header_port" 
            android:gravity = "center_horizontal"
            android:layout_gravity = "center_horizontal"/>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:orientation="horizontal" 
        android:layout_gravity = "center"
        android:gravity = "center"
>

        <Button
            android:id="@+id/buttonTakePic"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:layout_gravity="left"
            android:gravity = "left"
            android:background="@drawable/takepic_button" />

        <Button
            android:id="@+id/mMegaGalleryButton"
            android:layout_width="120dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:gravity = "center"
            android:background="@drawable/add_fotos" />

        <Button
            android:id="@+id/mGalleryButton"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:gravity = "right"
            android:background="@drawable/selectpic" 
            android:paddingLeft = "10dp"
            android:paddingRight = "10dp"/>


    </LinearLayout>

    <LinearLayout
        android:id="@+id/image_container"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_gravity="center"
        android:background="@drawable/outline_box"
        android:gravity="center">

        <FrameLayout
            android:layout_width = "match_parent"
            android:layout_height = "fill_parent"
            android:gravity = "center"
            android:layout_gravity = "center">

            <ImageView
                android:id="@+id/image"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:background = "@drawable/blank"
                android:gravity="center" />

            <ImageView
                android:id="@+id/picsImage"
                android:layout_width = "100dp"
                android:layout_height = "100dp"
                android:layout_gravity="center"
                android:gravity="center"
                android:background = "@drawable/picture_box"/>
        </FrameLayout>
    </LinearLayout>

    <Button
        android:id="@+id/mEditButton"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:background="@drawable/edit_pic_button" />

    <View
        android:layout_width="match_parent"
        android:layout_height="10dp" />

    <Button
        android:id="@+id/buttonUploadPic"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:background="@drawable/upload_pic_button" />

</LinearLayout>

3 个答案:

答案 0 :(得分:0)

使用相对布局而不是线性布局,如果对不同尺寸的屏幕使用app,则不要使用40dp,50dp等硬编码尺寸。

Relative layout

答案 1 :(得分:0)

布局中的问题是您在错误的位置使用了固定值!而是在按钮中android:layout_width="100dp"(在水平布局中),您应该使用android:layout_width="fill_parent" 您必须为此按钮为layout_weight设置零值,以便它们可以与此布局中的其他同级共享空间。

答案 2 :(得分:0)

将固定dp转换为重量的最简单方法:

改变这个:

机器人:layout_width =&#34; 100dp&#34;

到此:

机器人:layout_width =&#34; 0dp&#34;

机器人:layout_weight =&#34; 100&#34;

为所有按钮执行此操作,它们看起来与4&#34;并将在任何屏幕上完美缩放。