白い背景と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" />
<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
Android:cropToPadding = "true"
次に、imageViewは、選択したパディングを尊重します。
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>
@マノロガルシアの答えは正しいです。これは、境界線、スケールタイプの中央の切り抜き、およびパディングを使用した動的な画像表示に役立ちました。
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);