【问题标题】:Margin/Padding Shrinks ImageView边距/填充缩小 ImageView
【发布时间】:2012-08-23 13:37:47
【问题描述】:

我最近尝试定位 imageview 的 x 和 y 坐标但没有运气,似乎在 Gingerbread 中没有办法做到这一点。然后我决定尝试填充和边距,但是当我设置它们时,它会缩小我的图像视图。我设置了 250dp 的左填充,图像视图变得很小。 layout_height 和 width 设置为 wrap_content。我不确定发生了什么事。有谁知道为什么设置填充/边距会缩小图像视图?

【问题讨论】:

    标签: android android-layout margin padding android-relativelayout


    【解决方案1】:

    如果缩小意味着图片的比例混乱,那么你应该使用

    android:scaleType="centerInside"
    

    这将防止比率发生变化

    【讨论】:

    • 是的,如果你的意思是你在 imageview 中的图像被填充,它确实会缩小,但如果你希望你的图像在 imageview 中居中,你应该这样做
    【解决方案2】:

    您混淆了边距和填充。边距是视图之外的区域,而内边距影响内部边距的内容。

    如果您设置填充,那么它将影响您的可用内容区域,并且假设您设置了 ScaleType,它将缩小您的图像以适应可用空间。

    现在,您说您已经尝试了边距,但边距将完全满足您的要求。

    例如,如果您希望将ImageView 放在左上角的10dp,您可以执行以下操作:

    <?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"
        >
        <ImageView
            android:id="@+id/my_image_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="10dp"
            android:src="@drawable/my_image_id"
            />
    </RelativeLayout>
    

    请记住,这会将其置于10dp 相对于parent 边界。如果您的父布局也有内边距,那么这将影响您的内容放置。

    【讨论】:

    • 啊,非常感谢!我希望 Gingerbread 有新的 setX 和 Y 方法:/