Wie erstellen Sie kreisförmige facebook-Profil-Bild

Ich habe Probleme mit dieser Bibliothek zu machen, eines meiner Bilder in einem Kreis dynamisch. Hier ist mein Versuch:

private void drawerSetup() {
    Profile profile = Profile.getCurrentProfile();
    ProfilePictureView profilePictureView = (ProfilePictureView) findViewById(R.id.profile_image);
    CircularImageView circularProfilePicture = (CircularImageView)    findViewById(R.id.profile_image_circle);
    if(profilePictureView != null) {
        profilePictureView.setProfileId(profile.getId());
        ImageView imageView = ((ImageView)profilePictureView.getChildAt(0));
        Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
        circularProfilePicture.setImageBitmap(bitmap);
    }
}

Layout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    xmlns:facebook="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/tools"
    android:background="@drawable/side_nav_bar"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:orientation="vertical"
    android:gravity="bottom"
    app:showIn="@layout/activity_news_feed">

<com.facebook.login.widget.ProfilePictureView
    android:id="@+id/profile_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    facebook:com_facebook_preset_size="normal"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:paddingBottom="8dp"
    android:layout_centerInParent="true" />

<com.mikhaellopez.circularimageview.CircularImageView
    android:layout_width="100dp"
    android:layout_height="100dp"
    app:border_color="#EEEEEE"
    app:border_width="2dp"
    app:shadow="true"
    app:shadow_radius="10"
    android:id="@+id/profile_image_circle"
    app:shadow_color="#000000"
    android:layout_alignBottom="@+id/profile_image"
    android:layout_toLeftOf="@+id/profile_image"
    android:layout_toStartOf="@+id/profile_image" />

Ich weiß, dass mein profilePictureView ist die Anzeige korrekt, wenn ich rufe profilePictureView.setProfileId(profile.getId()); Auf mein layout korrekt angezeigt wird. Allerdings, wenn ich versuche zu nennen, die circularProfilePicture, werde ich einfach ein "leeres" Foto. Es scheint nicht, wie die bitmap für das Bild nicht erkannt/korrekt eingestellt. Das Bild wird nicht angezeigt, da die profilePictureView tut. Irgendwelche Ideen, warum dies passieren könnte?

  • welche lib hast du benutzt ? Immer so viel Informationen wie möglich. Auch habe man sich in logcat ? gibt es eine Ausnahme erhöhen ?
  • stackoverflow.com/questions/23464707/...
  • Seine schauen, wie es ist zu warten, für Bild-Antwort. versuchen Sie, Bild nach einer Verzögerung.
  • es war keine Ausnahme (nicht, dass ich mir bewusst bin) und ich war mit github.com/lopspower/CircularImageView library. Wie würde ich eine solche Verzögerung?
  • Verwenden Timer Klasse
  • Wenn Sie profilePictureView für die Nutzer Bild, ist es wirklich sendet eine Asynchrone HTTP-Anforderung zum abrufen der Daten, auf die nächste Zeile, Sie werden immer die bitmap festgelegt, die von den profilePictureView welches standardmäßig leer. Das ist, warum Sie keine Bild in Ihrem CircularView. Bibliothek funktioniert wie erwartet, versuchte ich mich selbst.
  • Zur Einführung eine kleine Verzögerung, bevor man das Bild in CircularView verwenden Sie entweder die Handler postDelayed Methode oder [Timer](developer.android.com/reference/java/util/..., lange, lange)), um die Einführung einer kleinen Verzögerung, bevor man das Bild in CircularView verwenden Sie entweder die Handler postDelayed Methode oder Timer Klasse für die Einführung von delay-Klasse für die Einführung verzögern

InformationsquelleAutor user1871869 | 2015-11-15
Schreibe einen Kommentar