2017-11-21 5 views
1

Ich verwende Glide 4.3.0 und wasabeef/glide-transformations, um einen Eckenradius der linken und rechten unteren Ecke meiner Bildansicht hinzuzufügen. Das Bild wird geladen, aber die Transformation wird nicht angewendet und ich sehe keine Änderungen in den Ecken.Glide RoundedCornersTransformation keine Änderungen vorzunehmen, wenn scaleType centerCrop ist

Hier ist meine Glide Transformation:

Glide.with(context) 
    .load(message.imageUrl) 
    .apply(bitmapTransform(new RoundedCornersTransformation(25, 0, RoundedCornersTransformation.CornerType.BOTTOM))) 
    .into(aq.id(R.id.ivSingleImage).getImageView()); 

Meine Importe sind wie folgt:

import com.bumptech.glide.Glide; 
import jp.wasabeef.glide.transformations.RoundedCornersTransformation; 
import static com.bumptech.glide.request.RequestOptions.bitmapTransform; 

Das Bild geladen wird, aber keine Transformation angewendet wird. Ist diese Implementierung korrekt?

Ich habe auch versucht CornerType.BOTTOM_LEFT und CornerType.BOTTOM_RIGHT

EDIT

ich, dass dies nur bemerkt, tritt auf, wenn die Scaletype auf centerCrop gesetzt. Wenn ich das aus der XML entfernen, es funktioniert, aber mit zwei großen Räumen auf der linken und der rechten Seite des Bildes:

<ImageView 
    android:id="@+id/ivSingleImage" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:layout_marginRight="5dp" 
    android:layout_weight="1" 
    android:background="@color/white" 
    android:scaleType="centerCrop" <!--Removing this works. But leaves two spaces on left and right sides--> 
    android:layout_marginEnd="5dp" /> 

zum Update Bezug ^, wie kann ich das Bild centerCrop haben und nach wie vor eine abgerundete Transformation haben ?

+0

Könnten Sie einen Screenshot von dem hinzufügen, was Sie erreicht haben? –

+0

Warum Sie Hintergrund als weiß und auch Höhe als 100 dpi einstellen, versuchen Sie einfach, wrap_content für Breite und Höhe und keinen Hintergrund – Meenal

+0

@Meenal Resolved zu verwenden. Posted die Antwort – Dinuka

Antwort

3

Die Lösung gefunden. Lösung verwendet MultiTransformation und die CenterCrop Transformationen in Glide-Transformationen Bibliothek, die ich in der Frage erwähnt.

Heres' die Lösung:

MultiTransformation multiLeft = new MultiTransformation(
    new CenterCrop(), 
    new RoundedCornersTransformation(25, 0, RoundedCornersTransformation.CornerType.BOTTOM_LEFT)); 

Glide.with(context) 
    .load(message.imageUrl) 
    .apply(bitmapTransform(multiLeft)) 
    .into(aq.id(R.id.ivSingleImage).getImageView()); 

Mit centerCrop im scaleType Attribute der XML nicht mit den Glide Bibliothek Transformationen funktioniert.

Verwandte Themen