0

我正在构建一个我想支持多种设备尺寸的应用程序。在我的应用程序中,我使用列表视图来显示数据以及自定义适配器。列表视图的背景是我所做的图像。这张图片基本上是114heightX700width。在图像的大约 1/4 处有一个小的垂直分隔线。

在左侧,我需要将最多 3 位数的数字居中,在左侧,一个标题。

它在 Nexus 4 上运行良好,但如果我尝试其他具有不同 dpi 的设备,它就不会再居中了。有没有办法“剪辑”给定图像中的文本定位,以便无论设备如何,它都始终位于同一位置?

这是我的 XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerInParent="true"
    android:contentDescription="@string/empty"/>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignBottom="@+id/imageView1"
    android:layout_alignLeft="@+id/imageView1"
    android:layout_alignParentTop="true"
    android:baselineAligned="false"
    android:orientation="horizontal" >

    <RelativeLayout
        android:layout_width="75dp"
        android:layout_height="match_parent"
        android:layout_weight="0.00" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="@string/empty"
            android:textColor="@android:color/white"
            android:textSize="18sp" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="0.89"
        android:paddingLeft="10dp" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:lines="1"
            android:paddingRight="10dp"
            android:text="@string/empty"
            android:textColor="@android:color/white"
            android:textSize="18sp" />
    </RelativeLayout>
</LinearLayout>

4

1 回答 1

0

有 3 个选项:

  1. 使用LinearLayoutset all children tomatch_parent并将layout_weight每个孩子设置为 1。这将使所有孩子的大小完全相同。
  2. 为每个孩子使用 9patch 背景。这将在文本“周围”绘制背景。
  3. 使用中间的视图TextView来显示分隔线。

无论如何:只有一个孩子的 RelativeLayouts/LinearLayout/FrameLayout 没有意义。您应该降低布局的复杂性。

于 2013-08-30T06:04:56.900 回答