Android如何分配这些视图

时间:2016-01-19 08:35:56

标签: android relativelayout

我试图在android布局中对齐两个视图 我有一个ImageView

enter image description here

我必须在顶部的“弹出窗口”中间对齐文本。

现在我的布局如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/rl_authorization_main"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="top"
    android:padding="35dp"
    >

    <ImageView
        android:id="@+id/iv_map"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:adjustViewBounds="true"
        android:src="@drawable/map_contact"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_alignTop="@+id/iv_map"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:gravity="center"
        android:text="@string/address"
        android:textColor="@color/black"
        android:textSize="16sp"/>
</RelativeLayout>

但正如你所看到的, 机器人:layout_marginTop = “20dp” TextView是硬编码的,它不会在所有设备上产生预期的结果 我想过为这个“弹出窗口”使用9patch,但是将它指向地图上的确切位置仍然是个问题。

我应该以某种方式计算实际的ImageView高度并将layout_marginTop设置为实际高度的百分比吗?

1 个答案:

答案 0 :(得分:1)

如果弹出图像的所有分辨率都正确缩放,你可以编写android:layout_marginTop =&#34; 20dp&#34;。

请遵循指南:

  • 小:1 dp = 0.5像素
  • 中:1 dp = 1像素
  • 大:1 dp = 1.5像素
  • xlarge:1 dp = 2像素
  • xxlarge:1 dp = 3像素
  • xxxlarge:1 dp = 4像素