Подтвердить что ты не робот

ImageView ScaleType игнорирует заполнение

У меня есть набор изображений с белым фоном и отступом 1dp, это создает пограничный эффект, который является желаемым результатом.

Теперь, если я устанавливаю 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" />
4b9b3361

Ответ 1

Я столкнулся с одной и той же проблемой, поскольку в моем обходном пути будет добавлен 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"/>

Ответ 2

<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 = "истина"

а затем ImageView будет уважать выбранное дополнение.

Ответ 3

Вы можете указать границу, установив 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>

Ответ 4

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