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.

  • SetPreviewDisplay und setDisplayOrientation
  • Wie kannst du sagen, wann eine Android-Aktivität beendet ist?
  • Android Test Module (Gradle Plugin 1.3) funktioniert nicht: "Debug-Klassen nicht gefunden"
  • Wie machst du einen Blick auf den dafür verfügbaren Platz?
  • HLS (http Live Streaming) auf Android 3.0 und suchen
  • Eröffnungs-Taschenlampe von Galaxy Nexus
  • 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,

  • Zugriff auf das Fenster "Android Studio"
  • Wie zu debuggen Android UI Stile
  • Fehler: Parsing das Paket bei der Installation von APK
  • Android lib zu lesen oder zu analysieren Shapefile
  • Ist der KaufToken gleich, wenn ein Abonnement mit Android In-App Billing V3 erneuert wird?
  • Wie erstelle ich eine Zeichnung aus Byte ? (Android)
  • 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.