我有一个带有白色背景和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" />
答案 0 :(得分: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" />
机器人:cropToPadding = “真”
然后imageView将尊重您选择的填充。
答案 1 :(得分: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>
答案 2 :(得分: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);
答案 3 :(得分:-7)
我刚遇到同样的问题,因为我的解决方法是添加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"/>