ImageView ScaleType忽略填充

我有一个Imageview设置与白色背景和1dp填充,这创build了一个边界般的效果,这是通缉的结果。

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

任何人有一个想法,阻止这种情况发生? 或者另一个快速的方法来创build一个图像边框。 我用它来定制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" /> 

Solutions Collecting From Web of "ImageView ScaleType忽略填充"

我刚刚遇到同样的问题,我的解决方法将添加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"/> 
 <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将尊重您select的填充。

你可以通过设置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> 

@Manolo加西亚的答案是正确的。 这帮助我在使用边框,缩放types中心裁剪和填充dynamic图像查看。

 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);