更改profilepictureview的大小:Facebook:preset_size无效

时间:2014-10-30 11:14:26

标签: android facebook facebook-graph-api

我试图更改我的ProfilePictureView的尺寸(太小),但我不能通过XML来实现:

        <com.facebook.widget.ProfilePictureView
        android:id="@+id/userProfilePicture"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:gravity="center_horizontal"
        facebook:preset_size="large"
        />

我尝试过小,大和正常,但尺寸保持不变,就好像这条线没有效果一样。 你能告诉我们这段代码有什么问题吗?或者如何更改profilepictureview的大小(通过Java或XML)。

谢谢:)

2 个答案:

答案 0 :(得分:3)

在您的java代码中,您可以使用setPresetSize(your_preferred_size)

您可以选择:

ProfilePictureView.LARGE
ProfilePictureView.NORMAL
ProfilePictureView.SMALL
ProfilePictureView.CUSTOM

答案 1 :(得分:1)

几天来一直试图解决这个问题,我想出了这个解决方法: 我看了一下ProfilePictureView类,发现了这个:

private int getPresetSizeInPixels(boolean forcePreset) {
    int dimensionId;
    switch (presetSizeType) {
        case SMALL:
// this is the line we need to edit, since the image always loads on a small size..
            dimensionId = R.dimen.com_facebook_profilepictureview_preset_size_small;
            break;
        case NORMAL:
            dimensionId = R.dimen.com_facebook_profilepictureview_preset_size_normal;
            break;
        case LARGE:
            dimensionId = R.dimen.com_facebook_profilepictureview_preset_size_large; 
            break;
        case CUSTOM:
            if (!forcePreset) {
                return ImageRequest.UNSPECIFIED_DIMENSION;
            } else {
                dimensionId = R.dimen.com_facebook_profilepictureview_preset_size_normal;
                break;
            }
        default:
            return ImageRequest.UNSPECIFIED_DIMENSION;
    }

转到facebook的styles.xml(res \ values \ styles.xml)并编辑该行:

<dimen name="com_facebook_profilepictureview_preset_size_small">100dp</dimen>

默认值为50。

结果令人满意!

ProfilePictureView