Problema de borde negro ShapeableImageView

Recientemente, me encontré con un problema problemático, es decir, estoy haciendo una vista previa de la imagen y salvando la vida, y necesito monitorear el momento en que se completa la carga de la imagen, y CenterCrop debe mostrar esta imagen, y también necesita esquinas redondeadas. Pero no quiero volver a escribir un ImageView personalizado yo mismo.
Aunque también encontré que hay un RoundImageView en el proyecto actual, pero después de mirarlo, el modo de visualización será Inicio, que no es el CenterCrop que quiero, y no quiero cambiarlo.
Y Glide no pudo establecer la esquina porque quería monitorearla, así que comenzó a buscar patos en Internet.
Finalmente, descubrí que ShapeableImageView puede satisfacer mis necesidades. Una vez que terminé de usarlo, hay un marco negro detrás de las esquinas redondeadas. Las instrucciones generales no lo mencionan. Después de una ola de búsqueda, encontré una solución.
Aquellos que dicen que la aceleración de hardware y la aceleración de software están prohibidas no funcionarán. De hecho, es suficiente establecer un relleno, 0.5 siempre está bien, de todos modos, no es muy obvio, así que usémoslo
inserte la descripción de la imagen aquí
:

implementation 'com.google.android.material:material:1.2.0'

<com.google.android.material.imageview.ShapeableImageView
            android:id="@+id/ivThumbnail"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintDimensionRatio="249:140"
            app:layout_constraintWidth_percent="0.664"
            android:scaleType="centerCrop"
            android:padding="0.5dp"
            app:shapeAppearance="@style/RoadshowCoverStyle"/>

<style name="RoadshowCoverStyle">
        <item name="cornerFamily">rounded</item>
        <item name="cornerSize">8dp</item>
    </style>

sigue siendo muy conveniente

Supongo que te gusta

Origin blog.csdn.net/fwt336/article/details/127554790
Recomendado
Clasificación