ImageView ScaleType忽略填充

Lar*_*onk 29 android gridview border imageview

我有一个带有白色背景和1dp填充的Imageview设置,这会产生类似边框的效果,这是想要的结果.

现在,如果我将scaleType设置为centerCrop,它将忽略顶部和底部的填充.
所以我仍然在左侧和右侧有边框,但不在顶部和底部.

任何有想法阻止这种情况发生的人?或者另一种快速创建图像边框的方法.我将它用于我的自定义gridview

   <ImageView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#FFFFFF"
            android:contentDescription="@string/test"
            android:padding="1dp"
            android:src="@drawable/some_photo"
            android:scaleType="centerCrop" />
Run Code Online (Sandbox Code Playgroud)

小智 165

<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" />
Run Code Online (Sandbox Code Playgroud)

你只需要添加android:cropToPadding

机器人:cropToPadding = "真"

然后imageView将尊重您选择的填充.

  • 注意:自api级别1以来该属性已存在,但该方法仅在JellyBean之后才可用. (7认同)
  • 欢迎并感谢Manolo的另一个答案.无法测试它,但感觉对我的钱是正确的. (3认同)

Amb*_*lll -9

我刚刚遇到了同样的问题,我的解决方法是添加 android:layout_marginRight="5dip"

<ImageView
    android:layout_width="40dp"
    android:layout_height="30dp"
    android:background="#ffffffff"
    android:src="@drawable/liveview_logo"
    android:layout_marginRight="5dip"/>
Run Code Online (Sandbox Code Playgroud)

  • 并非在所有情况下都可行。马诺洛·加西亚给出了正确答案 (3认同)