Affichage FB photo de profil dans la circulaire d'affichage de l'image dans l'Application
J'essaie d'obtenir la photo de profil d'un utilisateur de FB et de l'afficher dans une circulaire de l'image sur mon application.Je suis en mesure de récupérer et d'afficher l'écran de pic dans ProfilePictureView widget fourni par Facebook SDK. Mais quand j'essaie d'obtenir de l'image bitmap de l'image et essayer de s de le mettre dans une circulaire d'affichage de l'image, j'obtiens la valeur par défaut FB affichage pic qui tout le monde est affecté si vous n'avez pas un écran de pic. Je ne suis pas en mesure de résoudre ce problème. C'est ce que je fais pour obtenir l'image bitmap de ProfilePictureView et mis à ma vue circulaire.
if (session == Session.getActiveSession()) {
if (user != null) {
//Set the id for the ProfilePictureView
//view that in turn displays the profile picture.
profilePictureView.setDrawingCacheEnabled(true);
profilePictureView.setProfileId(user.getId());
Bitmap bitmap = profilePictureView.getDrawingCache();
Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
BitmapShader shader = new BitmapShader (bitmap, TileMode.CLAMP, TileMode.CLAMP);
Paint paint = new Paint();
paint.setShader(shader);
Canvas c = new Canvas(circleBitmap);
c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint);
profilePic.setImageBitmap(circleBitmap);
//profilePictureView.draw(c);
//c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint);
}
Ici profilePic est l'ImageView pour laquelle je suis en train de mettre le cercle de la forme et de profilePictureView est le ProfilePictureView id qui a l'affichage pic.
Vous devez vous connecter pour publier un commentaire.
Comme expliqué ici: FrameLayout, Votre Meilleur Ami de l'INTERFACE utilisateur vous pouvez utiliser un FrameLayout de mettre n'importe quoi dessiné sur le dessus d'une image. En particulier, vous pouvez placer une image ou d'une SVG de chemin d'accès (API level 21 et ci-dessus) sur le dessus d'un ProfilePictureView.
Par exemple, vous pouvez utiliser la mise en page suivante:
Ainsi que les suivantes SVG chemin qui correspond à un rectangle avec une soustrait cercle:
Et vous obtiendrez quelque chose comme ceci:
vector
nécessite l'API 21.Vous pouvez adapter gusridd réponse avec quelques fichier PNG (avec transparence dans le milieu) à l'aide de FrameLayout approche. Au lieu d'utiliser le vecteur de l'API (+21), drawable/subtracted_circle sera un fichier au res/drawable/subtracted_circle.png.
Même si vous avez besoin de générer ce fichier, vous pouvez utiliser n'importe quelle forme que vous voulez.
Vous devez également utiliser la même couleur de votre arrière-plan dans l'image.
res/drawable/subtracted_circle.png
J'ai trouvé un utile travail code ici. Espérons que cela aide. http://curious-blog.blogspot.in/2014/05/create-circle-bitmap-in-android.html
activity_main.xml
getCircleBitmap fonction
Classe MainActivity
J'ai passé un peu de temps à examiner les options pour l'affichage d'une circulaire Facebook image de profil et je pense que c'est plus facile de quitter le SDK Android de côté et juste tirer parti de votre bibliothèque d'images de transformations.
Au lieu d'utiliser Facebook du
ProfilePictureView
, utilisezImageView
. Ensuite, chargez l'image avec Picasso, de la Glisse, ou que ce soit de la bibliothèque que vous préférez. Ci-dessous, je suis en utilisant Picasso Picasso-Transformations.Maintenant:
Avant:
Ma solution en PHP: le
http://pastebin.com/RNthU2Pg