Universal Image Loader gerundetBitmapDisplayer Fragen

Ich benutze die neueste universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar-Datei. Es funktioniert gut Ich möchte das Bild umdrehen (Kreis). Ich habe folgende Anzeigeoptionen benutzt.

DisplayImageOptions userimgoptions = new DisplayImageOptions.Builder() .displayer(new RoundedBitmapDisplayer(35)) .showImageOnLoading(android.R.color.transparent) .showImageForEmptyUri(R.drawable.picture_info_profile_img) .showImageOnFail(R.drawable.picture_info_profile_img) .cacheInMemory(true).cacheOnDisc(true) .bitmapConfig(Bitmap.Config.RGB_565).build(); 

Es funktioniert nicht für einige Bilder. Ich habe das in eine niedrige und hohe Auflösung getestet.

  • Recycler anzeigen autofit LayoutManager
  • Com.google.android.gms.auth.GoogleAuthException: getToken (Unbekannte Quelle) Ausnahme
  • Android mehrere Fragment Transaktion Bestellung
  • Android-Startleiste beim Start und dann wieder anzeigen?
  • Fügen Sie benutzerdefiniertes Layout zu Symbolleiste hinzu
  • Wie kann ich meine Android-App planen, um jede Stunde zu tun
  • Hinweis: In meiner xml Imageview Höhe und mit (55 * 55).

    Bildbeschreibung hier eingebenBildbeschreibung hier eingebenBildbeschreibung hier eingebenBildbeschreibung hier eingeben

    Bitte helfen Sie mir bitte, wie Sie dieses Problem lösen können. Ich kann dieses Problem nicht lösen.

    Vielen Dank,

  • Gibt es einen einfacheren / besseren Weg, um eine Grenze / Umrisse um meine TextView zu setzen?
  • Wie hört man ein WebView-Finishing, das eine URL lädt?
  • Gibt es eine Möglichkeit, Ameisen-Datei local.properties zu erzeugen, ohne build.xml zu überschreiben?
  • Cygwin für Android-NDK Programmierung
  • Abziehbar auf Byte
  • Das Hinzufügen einer CheckBox zum ListView-Element verhindert, dass es möglich ist, ItemClick zu empfangen
  • 6 Solutions collect form web for “Universal Image Loader gerundetBitmapDisplayer Fragen”

    Wenn du ein kreisförmiges Bild willst, kannst du .displayer(new RoundedBitmapDisplayer(25)) zu .displayer(new RoundedBitmapDisplayer(1000)) der für mich gearbeitet hat.

    Wenn du ein abgerundetes Bild willst, musst du den abgerundeten Bitmap-Display auf den Radius des Bildes setzen, das in deinem Fall 1/2 55 oder 27,5 ist

     DisplayImageOptions userimgoptions = new DisplayImageOptions.Builder() .displayer(new RoundedBitmapDisplayer((int) 27.5f)) .showImageOnLoading(android.R.color.transparent) .showImageForEmptyUri(R.drawable.picture_info_profile_img) .showImageOnFail(R.drawable.picture_info_profile_img) .cacheInMemory(true).cacheOnDisc(true) .bitmapConfig(Bitmap.Config.RGB_565).build(); 

    Aber es ist wahrscheinlich nicht eine gute Idee zu harte Code, dass ich die config ändern würde, wenn du tatsächlich die Bitmap bekommst und die Breite berechst.

    Ich habe den RoundedBitmpDisplayer schon ziemlich langsam mit dem letzten Umschreiben gefunden. Bei weitem der schnellste Weg, den ich gefunden habe, um eine abgerundete Ecken zu erhalten, ist es konsequent, RoundedImageView zu verwenden. https://github.com/vinc3m1/RoundedImageView Sie können diese Ansicht in UIL übergeben und die Ansicht kümmert sich um die Rundung der Ecken für Sie. Sie geben einfach den gewünschten Radius an.

    Wie Kingargyle sagte mit RoundedImageView ist der beste Ansatz und Sie können erreichen, was Sie wollen, indem Sie nur dies tun:

     Transformation transformation = new RoundedTransformationBuilder() .borderColor(Color.BLACK) .borderWidthDp(3) .cornerRadiusDp(30) .oval(false) .build(); Picasso.with(context) .load(url) .fit() .transform(transformation) .into(imageView); 

    Also, wenn Sie nicht brauchen, um viel Cache-Optionen zu kalkulieren, mit Picasso anstelle von Universal Image Loader mit RoundedImageView ist es die beste Option.

    Die Lösung von Tim ist gut, aber in meinem Fall, wenn das Bild größer ist, dann größer ist das Bild ovaler als Kreis. Versuchen Sie diesen Code, es funktioniert mit jeder Bildgröße:

     public class CircleBitmapDisplayer extends RoundedBitmapDisplayer { public CircleBitmapDisplayer() { super(0); } @Override public void display(Bitmap bitmap, ImageAware imageAware, LoadedFrom loadedFrom) { if (!(imageAware instanceof ImageViewAware)) { throw new IllegalArgumentException("ImageAware should wrap ImageView. ImageViewAware is expected."); } imageAware.setImageDrawable(new CircleDrawable(bitmap, margin)); } public static class CircleDrawable extends RoundedDrawable { private Bitmap mBitmap; public CircleDrawable(Bitmap bitmap, int margin) { super(bitmap, 0, margin); this.mBitmap = bitmap; } @Override public void draw(Canvas canvas) { int radius = 0; if(mBitmap.getWidth() > mBitmap.getHeight()) { radius = mBitmap.getHeight() / 2; }else { radius = mBitmap.getWidth() / 2; } canvas.drawRoundRect(mRect, radius, radius, paint); } } } 

    Benutze es als normale Anzeige:

     DisplayImageOptions options = new DisplayImageOptions.Builder() .displayer(new CircleBitmapDisplayer()) .cacheInMemory(true) .cacheOnDisk(true) .build(); ImageLoader.getInstance().displayImage(url, imageView,options); 

    Verwenden Sie .displayer(new CircleBitmapDisplayer()) in DisplayImageOptions

    zusammen mit

     compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' 

    In deinem Modul Level build.gradle.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.