Android:ImageView的位置在不同大小的屏幕上更改

时间:2016-02-27 15:54:23

标签: android xml layout imageview

我的布局中有五个图像视图,我应该将每个图像视图放在背景上的特定位置。在不同屏幕尺寸上运行我的应用程序时,图像视图的位置向上移动。 我创建了以下文件夹。
res / layout- small
res / layout-normal
res / layout-large
res / layout-xlarge
这里你会发现我的布局。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/body"
        android:layout_below="@+id/header"
        android:background="@drawable/upn">

       <ImageView
            android:layout_width="45dip"
            android:layout_height="20dip"
            android:id="@+id/U1"
            android:layout_gravity="center"
            android:background="#f40c0d"
            android:padding="1dip"
           android:layout_marginRight="26dip"
           android:layout_marginEnd="26dip"
           android:layout_marginBottom="96dip"
           android:layout_above="@+id/U5"
           android:layout_alignParentRight="true"
           android:layout_alignParentEnd="true" />

        <ImageView
            android:layout_width="45dip"
            android:layout_height="20dip"
            android:id="@+id/U3"
            android:layout_gravity="center"
            android:background="#f40c0d"
            android:padding="1dip"
            android:layout_marginRight="63dip"
            android:layout_marginEnd="63dip"
            android:layout_above="@+id/U1"
            android:layout_toLeftOf="@+id/U1"
            android:layout_toStartOf="@+id/U1"
            android:layout_marginBottom="22dip" />


       <ImageView
            android:layout_width="45dip"
            android:layout_height="20dip"
            android:id="@+id/U2"
            android:layout_gravity="center"
            android:background="#f40c0d"
            android:padding="1dip"
            android:layout_marginRight="5dip"
            android:layout_marginEnd="5dip"
            android:layout_marginBottom="103dip"
            android:layout_alignParentBottom="true"
            android:layout_alignRight="@+id/U3"
            android:layout_alignEnd="@+id/U3"
           />

       <ImageView
             android:layout_width="45dip"
             android:layout_height="20dip"
             android:id="@+id/U4"
             android:layout_gravity="center"
             android:background="#f40c0d"
             android:padding="1dip"
           android:layout_above="@+id/U2"
           android:layout_alignLeft="@+id/U5"
           android:layout_alignStart="@+id/U5"
           android:layout_marginBottom="18dip"
           />

         <ImageView
             android:layout_width="45dip"
             android:layout_height="20dip"
             android:id="@+id/U5"
             android:layout_gravity="center"
             android:background="#f40c0d"
             android:padding="1dip"
             android:layout_marginLeft="68dip"
             android:layout_marginStart="68dp"
             android:layout_above="@+id/U2"
             android:layout_alignParentLeft="true"
             android:layout_alignParentStart="true"
             android:layout_marginBottom="43dp"
            />

    </RelativeLayout>
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

  

res / layout / your_layout.xml //正常屏幕尺寸的布局(&#34;默认&#34;)

     

res / layout-large / your_layout.xml //适用于大屏幕尺寸的布局

     

res / layout-xlarge / your_layout.xml //超大屏幕尺寸的布局

     

res / layout-xlarge-land / your_layout.xml //横向格式超大的布局

并在每个文件夹中..具有不同图像位置的your_layout.xml

例如。 RES / layout_large / your_layout.xml

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/body"
    android:layout_below="@+id/header"
    android:background="@drawable/upn">

   <ImageView
        android:id="@+id/my_iv"
         .....
   />
</RelativeLayout>

也许您必须在清单文件中添加此行

<supports-screens android:smallScreens="true" 
          android:normalScreens="true" 
          android:largeScreens="true"
          android:xlargeScreens="true"
          android:anyDensity="true" />

//更多信息:

http://developer.android.com/guide/practices/screens_support.html#support

  

为不同的屏幕尺寸提供不同的布局   默认情况下,Android会调整应用程序布局的大小以适应当前的设备屏幕。在大多数情况下,这很好。在其他情况下,您的UI可能看起来不太好,可能需要针对不同的屏幕尺寸进行调整。例如,在较大的屏幕上,您可能需要调整某些元素的位置和大小以利用额外的屏幕空间,或者在较小的屏幕上,您可能需要调整大小以使所有内容都适合屏幕。
  可用于提供特定于大小的资源的配置限定符是small,normal,large和xlarge。例如,超大屏幕的布局应该在layout-xlarge /.
>中   从Android 3.2(API级别13)开始,不推荐使用上述大小组,您应该使用sw&lt; N&gt; dp配置限定符来定义布局资源所需的最小可用宽度。例如,如果多窗格平板电脑布局需要至少600dp的屏幕宽度,则应将其放在 layout-sw600dp / 中。使用新技术声明布局资源将在有关为Android 3.2声明平板电脑布局的部分中进一步讨论。