ImageView覆盖不起作用

时间:2016-04-26 20:27:51

标签: android android-layout

我的xml中有2个布局,一个CircularImageView和一个ImageView,而ImageView必须出现在CircularImageView的顶部。

我试过了:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fragment_kids_register_ll_kid"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/md_white_1000"
    android:orientation="horizontal">

    <RelativeLayout
        android:padding="16dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <com.mikhaellopez.circularimageview.CircularImageView
            android:id="@+id/fragment_kids_row_img_kids"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:src="@drawable/ic_boy"
            />

        <ImageView
            android:id="@+id/fragment_kids_row_iv_crown"
            android:layout_toRightOf="@+id/fragment_kids_row_img_kids"
            android:layout_marginLeft="-26dp"
            android:layout_marginTop="-22dp"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:src="@drawable/ic_crown"/>

    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <TextView
            android:id="@+id/fragment_kids_row_tv_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:textColor="@color/md_black_1000"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/fragment_kids_row_tv_age"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="1 ano e 4 meses"
            android:textColor="#808080"
            android:textSize="12sp" />

    </LinearLayout>

</LinearLayout>

它正在被切断: enter image description here

我需要将图像准确显示在图片中的该位置,但不要&#34;裁剪&#34;,我在这里缺少什么?

顺便说一句,这个组件是RecyclerView行的一部分。

编辑--- 我忘了提到,图片只是一个显示阿凡达的占位符,但图像是人口填充的!

谢谢!

4 个答案:

答案 0 :(得分:1)

您应用于第一个relativeLayout的填充(16dp)会让您认为有更多的地方,并且您可以向上移动imageView。实际上,边距就像是一个缺口,它不会扩展你的布局。

这是我建议的解决方案,使用FrameLayout

<FrameLayout
    android:layout_width="100dp"
    android:layout_height="100dp">

       <com.mikhaellopez.circularimageview.CircularImageView
        android:id="@+id/fragment_kids_row_img_kids"
        android:layout_gravity = "center"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:src="@drawable/ic_boy"
        />

    <ImageView
        android:id="@+id/fragment_kids_row_iv_crown"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:src="@drawable/ic_crown"
        android:layout_gravity="right|top" />

</FrameLayout>

编辑:您不必使用frameLayout,如果要设置不同的边距,可以使用relativeLayout。这里的重点是让您的包含布局更大,以便放置imageview easily

答案 1 :(得分:0)

如果您希望将一张图片放在另一张图像之上,为什么要使用android:layout_toRightOf
将其取下,第二张图像应覆盖第一张图像。

您也可以尝试删除第二张图片的边距,然后使用centerInParentcenterVerticallycenterHorizontally

或者也许我没有解决所有问题)然后请提供更多细节。感谢。

答案 2 :(得分:0)

您是否尝试过使用Paint / Photoshop等图像编辑器并合并这两个图像?然后,您只需在视图中显示一个图像。

答案 3 :(得分:0)

尝试使用线性布局,方向设置为垂直。