0

我正在 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>
4

3 回答 3

0

如果将应用程序用于不同尺寸的屏幕,请使用相对布局而不是线性布局,并且不要使用硬编码的尺寸,如 40dp、50dp。

相对布局

于 2012-11-26T15:07:30.417 回答
0

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

改变这个:

android:layout_width="100dp"

对此:

android:layout_width="0dp"

android:layout_weight="100"

为所有按钮执行此操作,它们看起来与 4" 中的完全一样,并且可以在任何屏幕上完美缩放。

于 2014-04-13T22:17:47.500 回答
0

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

于 2012-11-26T15:21:34.040 回答