来自facebook的大型Facebook ProfilePictureView图片尺寸不同

时间:2013-11-24 05:33:33

标签: android facebook-android-sdk

我正在使用ProfilePictureView来获取大尺寸的Facebook个人资料图片。但是,一些用户的个人资料图片较小 - 我认为因为他们原来的脸谱资料图片尺寸小于ProfilePictureView.LARGE。这使我的个人资料图片看起来有点尴尬;有没有办法“拉伸”这张图片,使其成为预定义的ProfilePictureView.LARGE尺寸?

2 个答案:

答案 0 :(得分:0)

我找不到这个问题的真正解决方案,所以我推出了这个解决方法:

转到你的facebook sdk的styles.xml并编辑该行:

<dimen name="com_facebook_profilepictureview_preset_size_small">100dp</dimen>
<!--the default value was 50, change it to what suits you best-->

希望这有帮助!关于this回答的更多细节。

答案 1 :(得分:0)

背景故事:我对此的期望行为是对于个人资料图片的延伸。我遇到了直接API的一些问题,并使用此ProfilePictureView来简化该过程。我的规格要求轮廓图像是图像的圆形裁剪,所以我制作了一个遮罩,以覆盖图像的圆形中间位置。当我开始在不同尺寸的设备上进行测试时,这会破坏,因为配置文件图像不符合布局中给出的大小。

解决方案:Ridouane鼓励我在Facebook的源代码中挖掘,因为他们给了你。在ProfilePictureView中,有方法

private void initialize(Context context) {
    // We only want our ImageView in here. Nothing else is permitted
    removeAllViews();

    image = new ImageView(context);

    LayoutParams imageLayout = new LayoutParams(
            LayoutParams.MATCH_PARENT,
            LayoutParams.MATCH_PARENT);

    image.setLayoutParams(imageLayout);

    // We want to prevent up-scaling the image, but still have it fit within
    // the layout bounds as best as possible.
    image.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
    addView(image);
}

我将第二行更改为最后一行:

image.setScaleType(ImageView.ScaleType.FIT_XY);

图像现在伸展到它所在容器的大小。由于我使用的是正常大小的图像,我不认为会出现过大的差异会导致明显的模糊,而只是轻微的降低质量对我来说不是什么大问题。我意识到这是一个hacky解决方案,但由于Facebook认为不适合这个用户控制,这是我能看到的最佳解决方案。 (我建议您在设置个人资料ID时留下评论,以防您或其他人在将来的某个时间更新Facebook SDK,从而吹走此更改。)