32

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

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

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

   <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" />
4

4 回答 4

175
<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:cropToPadding

机器人:cropToPadding="真"

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

于 2012-09-21T12:52:36.967 回答
2

您可以通过设置给边框android:background="@drawable/edit_border"

还有你的edit_border:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <stroke
        android:width="2dp"
        android:color="#EBDDE2" />

    <padding
        android:bottom="2dp"
        android:left="2dp"
        android:right="2dp"
        android:top="4dp" />

    <gradient
        android:centerColor="@color/white" 
        android:endColor="@color/white"
        android:startColor="@color/white" />

    <corners android:radius="8dp" />

</shape>
于 2012-06-01T13:17:18.053 回答
0

@Manolo Garcia 的回答是正确的。这有助于我使用边框、缩放类型中心裁剪和填充进行动态图像视图。

final ImageView imageView = new ImageView(context);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(200,200);
lp.setMargins(0, 0, 10, 0);
imageView.setLayoutParams(lp);
imageView.setAdjustViewBounds(true);
imageView.setCropToPadding(true);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setBackgroundResource(R.drawable.img_blue_border);
imageView.setPadding(5, 5, 5, 5);
于 2016-02-03T05:01:23.680 回答
-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"/>
于 2012-06-03T14:50:07.660 回答