针对不同屏幕的Android对齐问题

时间:2013-12-17 11:14:19

标签: android layout alignment

我有一个标题,其中我有很多项目,目前我正在使用边距和填充以某种方式对齐,但我相信这是不正确的方式,因为当我在其他屏幕上测试它失败。有没有更好的方法来设计它。下面是截图和代码

<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#0a2436"
        android:gravity="center"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/back"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerInParent="true"
            android:layout_marginLeft="0dip"
            android:src="@drawable/back" />

        <TextView
            android:id="@+id/inboxtext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerInParent="true"
            android:layout_marginLeft="34dip"
            android:layout_toRightOf="@id/back"
            android:background="#0a2436"
            android:paddingBottom="10dip"
            android:paddingTop="10dip"
            android:text="Inbox"
            android:textSize="18sp" >
        </TextView>

        <ImageView
            android:id="@+id/inboxheader"
            android:layout_width="2dip"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerInParent="true"
            android:layout_marginLeft="95dip"
            android:layout_toRightOf="@id/windowtitle"
            android:background="#ffffff"
            android:paddingBottom="15dip"
            android:paddingTop="15dip" />

        <ImageView
            android:id="@+id/editheader"
            android:layout_width="2dip"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerInParent="true"
            android:layout_marginRight="130dip"
            android:background="#ffffff"
            android:paddingBottom="15dip"
            android:paddingTop="15dip" />

        <ImageButton
            android:id="@+id/edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerInParent="true"
            android:layout_marginRight="65dip"
            android:background="@drawable/edit"
            android:text="Sync" />

        <ImageView
            android:id="@+id/deleteheader"
            android:layout_width="2dip"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerInParent="true"
            android:layout_marginRight="65dip"
            android:background="#ffffff"
            android:paddingBottom="15dip"
            android:paddingTop="15dip" />

        <ImageButton
            android:id="@+id/delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerInParent="true"
            android:background="@drawable/delete"
            android:text="Sync" />
    </RelativeLayout>

2 个答案:

答案 0 :(得分:1)

试试此代码

<ImageView
    android:id="@+id/back"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerInParent="true"
    android:layout_marginLeft="0dip"
    android:src="@drawable/ic_launcher" />

<TextView
    android:id="@+id/inboxtext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginLeft="5dp"
    android:layout_toRightOf="@+id/back"
    android:background="#0a2436"
    android:paddingBottom="10dip"
    android:paddingTop="10dip"
    android:text="Inbox"
    android:textSize="18sp" >
</TextView>

<ImageView
    android:id="@+id/inboxheader"
    android:layout_width="2dip"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginRight="5dp"
    android:layout_toRightOf="@+id/inboxtext"
    android:background="#ffffff"
    android:paddingBottom="15dip"
    android:paddingTop="15dip" />

<ImageView
    android:id="@+id/editheader"
    android:layout_width="2dip"
    android:layout_height="wrap_content"
            android:layout_centerVertical="true"
    android:layout_toLeftOf="@+id/edit"
    android:layout_marginLeft="3dp"
    android:background="#ffffff"
    android:paddingBottom="15dip"
    android:paddingTop="15dip" />

<ImageButton
    android:id="@+id/edit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_toLeftOf="@+id/deleteheader"
    android:layout_marginLeft="3dp"
    android:background="@drawable/ic_launcher"
    android:text="Sync" />

<ImageView
    android:id="@+id/deleteheader"
    android:layout_width="2dip"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_toLeftOf="@+id/delete"
    android:layout_marginLeft="3dp"
    android:background="#ffffff"
    android:paddingBottom="15dip"
    android:paddingTop="15dip" />

<ImageButton
    android:id="@+id/delete"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:background="@drawable/ic_launcher"
    android:text="Sync" />

如果您想使应用程序与多个屏幕兼容,请不要硬编码值。请相应更改图标图像

答案 1 :(得分:0)

试试这个..

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#0a2436"
    android:gravity="center"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerInParent="true"
        android:src="@drawable/back" />

    <TextView
        android:id="@+id/inboxtext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/back"
        android:background="#5F717D"
        android:padding="10dp"
        android:text="Inbox"
        android:textSize="18dp" >
    </TextView>

    <ImageView
        android:id="@+id/inboxheader"
        android:layout_width="2dip"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginRight="5dp"
        android:layout_toRightOf="@+id/inboxtext"
        android:background="#ffffff"
        android:paddingBottom="15dp"
        android:paddingTop="15dp" />

    <ImageView
        android:id="@+id/editheader"
        android:layout_width="2dp"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/edit"
        android:layout_marginLeft="3dp"
        android:background="#ffffff"
        android:paddingBottom="15dp"
        android:paddingTop="15dp" />

    <ImageButton
        android:id="@+id/edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/deleteheader"
        android:layout_margin="3dp"
        android:background="@drawable/edit"
        android:text="Sync" />

    <ImageView
        android:id="@+id/deleteheader"
        android:layout_width="2dp"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/delete"
        android:layout_margin="3dp"
        android:background="#ffffff"
        android:paddingBottom="15dp"
        android:paddingTop="15dp" />

    <ImageButton
        android:id="@+id/delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="3dp"
        android:layout_marginBottom="3dp"
        android:layout_marginTop="3dp"
        android:background="@drawable/delete"
        android:text="Sync" />

</RelativeLayout>