我正在使用ProfilePictureView获取大尺寸的脸书头像。然而,一些用户的头像更小--我想是因为他们最初的facebook头像尺寸比ProfilePictureView.LARGE的要小,这让我的头像页面看起来有点笨拙;有没有办法“拉伸”这张照片,让它变成预定义的ProfilePictureView.LARGE大小?
发布于 2014-10-31 04:54:56
我没有找到这个问题的真正解决方案,所以我想出了这个变通办法:
打开你的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 answer的更多详细信息。
发布于 2015-04-03 03:05:26
背景故事:我对此的期望行为是为了在头像上有一个延伸。我在使用direct 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);图像现在拉伸到它所在的容器的大小。由于我使用的是正常大小的图像,所以我不认为会有太大的差异,这会导致明显的模糊,质量的轻微降低对我来说并不是什么大问题。我意识到这是一个有点老生常谈的解决方案,但由于Facebook认为不适合控制这个用户,这是我能看到的最好的解决方案。(我建议在您设置配置文件id的位置留下注释,以防您或其他人在将来某个时候更新Facebook SDK,从而消除此更改。)
https://stackoverflow.com/questions/20171464
复制相似问题