0

好的,伙计们。问题:我的布局需要视图出现在背景图像中内置的“框”内。所以..精确的布局是必须的。我得到了布局,它在模拟器和三星 Galaxy S 上看起来很棒,但是当我把它扔到 Droid X 上时,视图会向上移动。问题是这两款手机都被视为具有 HDPI 的中型屏幕。我显然不能使用不同的布局文件夹来修复它。我在清单中将“anyDensity”设置为 false。尝试了 minSDK 3 技巧。我的资源是从 drawable-hdpi 文件夹中提取的,但不应该有所作为。我能想象的唯一会导致这种情况的是我给出的特定边距值(即使在 DIP 中)。但是我不知道如何在没有这个的情况下在特定位置实现具有视图的布局。请问有什么帮助吗??Commonsware 你在哪里。多谢你们。

编辑: 我想得越多,我就越意识到我的想法是错误的。(自从我编写 Android 布局以来已经有一段时间了)DIP 正在做它应该做的事情。我放置的每个屏幕上的尺寸都完全相同,但我想要完成的是让视图随屏幕尺寸扩展。因此,如果屏幕更大,则边距和间距会随着屏幕而增长。本质上,我的整个布局都需要一个 fill_parent,但我不能在精确布局中使用它。有任何想法吗?

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

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="150dp"
        android:layout_marginTop="20dip"
        android:layout_marginRight="10dip"
        android:layout_gravity="right"
        android:gravity="center_horizontal"
        android:text="Text Here"
        android:textSize="15dip"
        android:textColor="#253B85" />

    <TextView
        android:id="@+id/code"
        android:layout_height="wrap_content"
        android:layout_width="150dp"
        android:layout_marginTop="10dip"
        android:layout_marginRight="10dip"
        android:layout_gravity="right"
        android:gravity="center_horizontal"
        android:text="5D6"
        android:textSize="9dip"
        android:textColor="#000000" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/icon"
            android:layout_width="90dip"
            android:layout_height="90dip"
            android:layout_marginLeft="20dip"
            android:layout_marginTop="10dip"/>

        <TextView
            android:id="@+id/name"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_marginTop="19dip"
            android:layout_marginRight="20dip"
            android:layout_toRightOf="@id/icon"
            android:layout_alignParentRight="true"
            android:gravity="right"
            android:text="Really Long Name"
            android:textSize="17dip"
            android:textColor="#253B85" />

        <TextView
            android:id="@+id/importantInfo"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_marginTop="5dip"
            android:layout_marginRight="20dip"
            android:layout_below="@id/name"
            android:layout_alignParentRight="true"
            android:gravity="right"
            android:text="50% off"
            android:textSize="30dip"
            android:textStyle="bold"
            android:textColor="#253B85" />

        <TextView
            android:id="@+id/dateLabel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dip"
            android:layout_marginTop="22dip"
            android:layout_below="@id/icon"
            android:text="date: "
            android:textColor="#253B85" />

        <TextView
            android:id="@+id/dateText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="22dip"
            android:layout_below="@id/icon"
            android:layout_toRightOf="@id/dateLabel"
            android:text=" "
            android:textColor="#253B85" />

        <TextView
            android:id="@+id/moreInfo"
            android:layout_width="fill_parent"
            android:layout_height="33dip"
            android:layout_marginLeft="22dip"
            android:layout_marginTop="3dip"
            android:layout_marginRight="24dip"
            android:layout_below="@id/dateLabel"
            android:gravity="center"
            android:maxLines="2"
            android:textSize="10dip"
            android:text=" "
            android:textColor="#253B85" />

        <ImageView
            android:id="@+id/qrIcon"
            android:layout_width="fill_parent"
            android:layout_height="106dip"
            android:layout_marginLeft="22dip"
            android:layout_marginTop="11dip"
            android:layout_marginRight="24dip"
            android:layout_below="@id/moreInfo" />

    </RelativeLayout>

    <Button
        android:id="@+id/submitButton"
        android:layout_width="160dip"
        android:layout_height="40dip"
        android:layout_marginTop="14dip"
        android:layout_gravity="center_horizontal"
        android:onClick="buttonRedeemOnClickListener"
        android:background="@drawable/button_background"
        android:text="Redeemed Coupon"
        android:textColor="#FFFFFF" />

</LinearLayout>
4

2 回答 2

1

添加清单文件:::

<supports-screens android:smallScreens="true" android:resizeable="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true"></supports-screens>
于 2011-09-16T15:20:01.917 回答
0

根据您目前的代码,我认为您没有尝试为不同尺寸编写不同的布局。这取决于您要编码多少尺寸,这很耗时,但这样做非常值得。我能看到的唯一问题是您是否要为每个屏幕分辨率制作布局,这不值得麻烦。

于 2013-09-26T03:36:07.090 回答