如何使imageview正确居中于另一个视图中以制作边框?

时间:2012-04-13 08:24:56

标签: android listview layout imageview padding

我想要完成的只是在我的imageview周围创建一个小的2-4dp填充边框。结果(在ADT中看起来是正确的,但这是它在设备上的样子):

enter image description here

请注意,顶部有5个px,左/右/底部有7个px空间(这适用于hdpi设备)

这是我的行的xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingTop="2dp">
    <RelativeLayout
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@android:color/white"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true">
        <ImageView
            android:src="@android:color/black"
            android:id="@+id/row_image"
            android:scaleType="centerCrop"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="4dp"
            android:layout_centerInParent="true"/>  
    </RelativeLayout>
</RelativeLayout>

我尝试了一切:Adjustviewbounds,centerCrop,wrap_content,match_parent,center,centerInside,height = 46 / width = 46 ,.任何新的建议将非常感谢,layout_gravity = center。

编辑新信息:所以我尝试删除android:layout_alignParentRight =“true”和android:layout_centerVertical =“true”,现在填充/边距看起来正确但是它没有放在右侧。

4 个答案:

答案 0 :(得分:1)

试试这个:

使用ShapeDrawable创建一个可绘制的xml(bg.xml)。纯色白色和边框黑色。然后将其添加为ImageView的背景,并将ImageView的填充设置为2dp。这应该没问题。不需要ReletiveLayouts ..

希望这有帮助!

答案 1 :(得分:0)

所以culprint是android:layout_centerVertical =“true”。不知何故,它会移动布局,使其居中不正确。

答案 2 :(得分:0)

请检查:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="right|center_vertical" >

    <RelativeLayout
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@android:color/white"
        android:layout_margin="5sp"
        android:padding="5sp" >

        <ImageView
            android:id="@+id/row_image"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:src="@android:color/black" />
    </RelativeLayout>

</RelativeLayout>

希望你是这样的,如果没有,那么告诉你到底想要什么。 感谢。

答案 3 :(得分:0)

您应该尝试以下代码:

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:contentDescription="@string/test"
    android:padding="1dp"
    android:src="@drawable/some_photo"
    android:cropToPadding="true"
    android:scaleType="centerCrop" 
    android:background="@color/grey_border"/>