【问题标题】:Android alignment issues for different screens不同屏幕的Android对齐问题
【发布时间】:2013-12-17 19:50:06
【问题描述】:

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

<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>

【问题讨论】:

    标签: android layout alignment


    【解决方案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" />
    

    如果您想让应用与多屏兼容,请不要对值进行硬编码。请相应地更改图标图像

    【讨论】:

    • 看起来不错,收件箱旁边的分隔线几乎是触摸的,但是当我更改 Textview 的 marginLeft 时,标题没有对齐
    • 是的,使用收件箱标题的左边距而不是右边距 android:layout_marginLeft="10dp" 更改收件箱标题图像视图的边距而不是 textview
    【解决方案2】:

    试试这个..

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多