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を追加するだけです。

android:cropToPadding="true"

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 に答える
-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 に答える