Android:ImageView重叠

时间:2015-03-17 17:15:05

标签: java android imageview relativelayout overlapping

我有五个ImageViews(ImageButtons),我想在一行显示,但是当我在一个小设备上时,我的最后一个图像被裁剪了?

我该如何解决?

有没有办法检测屏幕宽度?

| A | B | C | D | E |

在我的RelativeLayout xml文件中:

<ImageButton
        android:id="@+id/mFooterProfileImg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@+id/mFooterMembersImg"
        android:layout_alignParentEnd="true"
        android:background="@drawable/icon_bar_profile"
        android:contentDescription="@string/footer_img_profile" />

    <ImageButton
        android:id="@id/mFooterMembersImg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@+id/mFooterCameraImg"
        android:background="@drawable/icon_bar_members"
        android:contentDescription="@string/footer_img_members" />

    <ImageButton
        android:id="@id/mFooterCameraImg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@+id/mFooterMediaImg"
        android:background="@drawable/icon_bar_camera"
        android:contentDescription="@string/footer_img_camera" />

    <ImageButton
        android:id="@id/mFooterMediaImg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@+id/mFooterHomeImg"
        android:background="@drawable/icon_bar_medias"
        android:contentDescription="@string/footer_img_media" />

    <ImageButton
        android:id="@id/mFooterHomeImg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:background="@drawable/icon_bar_home"
        android:contentDescription="@string/footer_img_home" />

2 个答案:

答案 0 :(得分:2)

在我看来,正确的方法是创建线性布局, 确保方向是水平的。 然后传递layout_width =&#34; 0dp&#34;对于每个imageButton, 并且还为每个imageButton分配layout_weight =&#34; 20&#34;

这为每张照片提供了20%的宽度。

就像Der Golem说的那样。

答案 1 :(得分:0)

我发布Der Golem的评论作为答案,只是为了帮助你。在xml中使用以下代码来实现您的目标:

<LinearLayout

android:layout_width = "match_parent"
android:layout_height= "match_parent">

<ImageButton
        android:id="@+id/mFooterProfileImg"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight = "1"

        android:background="@drawable/icon_bar_profile"
        android:contentDescription="@string/footer_img_profile" />

    <ImageButton
        android:id="@id/mFooterMembersImg"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
      android:layout_weight = "1"
        android:background="@drawable/icon_bar_members"
        android:contentDescription="@string/footer_img_members" />

    <ImageButton
        android:id="@id/mFooterCameraImg"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
       android:layout_weight = "1"
        android:background="@drawable/icon_bar_camera"
        android:contentDescription="@string/footer_img_camera" />

    <ImageButton
        android:id="@id/mFooterMediaImg"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
       android:layout_weight = "1"
        android:background="@drawable/icon_bar_medias"
        android:contentDescription="@string/footer_img_media" />

    <ImageButton
        android:id="@id/mFooterHomeImg"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
       android:layout_weight = "1"
        android:background="@drawable/icon_bar_home"
        android:contentDescription="@string/footer_img_home" />

<LinearLayout/>

希望这可以帮到你