gpt4 book ai didi

android - 如何创建圆形的 Facebook 个人资料图片

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:36 25 4
gpt4 key购买 nike

我在使用这个库将我的一张图片动态地变成一个圆圈时遇到了问题。这是我的尝试:

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);
}
}

布局:

<?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" />

我知道当我调用 profilePictureView.setProfileId(profile.getId()); 时,我的 profilePictureView 显示正确;在我的布局上,它显示正确。但是,当我尝试调用 circularProfilePicture 时,我只是得到一张“空”照片。图像的位图似乎没有被正确识别/设置。该图像不像 profilePictureView 那样显示。知道为什么会发生这种情况吗?

最佳答案

在使用了不同的图片库(包括 Picasso)之后,我完成了使用 Facebook 一个名为 Fresco 的图片库。 .代码更少,速度更快,一切正常。

壁画支持:

  • 渐进式 JPEG 流媒体
  • 展示动画 GIF 和 WebP
  • 图像加载和显示的广泛定制

医生也说了

In Android 4.x and lower, Fresco puts images in a special region of Android memory. This lets your application run faster - and suffer the dreaded OutOfMemoryError much less often.

它还支持搜索时的圆角,请参阅 here .

布局示例:

        <com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/avatarImageView"
android:layout_width="50dp"
android:layout_height="50dp"
fresco:placeholderImageScaleType="centerCrop"
fresco:placeholderImage="@drawable/photo_placeholder"
fresco:roundAsCircle="true"/>

注意:不要忘记在某处(通常在您的应用程序类中)调用 Fresco.initialize(this);

我还应该注意到 Fresco 目前使用 ProGuard 将 2.6Mb 添加到您的应用程序。如果您需要更少的功能,您可以选择使用其他库,例如 Glide。

关于android - 如何创建圆形的 Facebook 个人资料图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33715457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com