2013-11-24 2 views
2

Я использую ProfilePictureView для получения фотографий профиля большого размера. Тем не менее, некоторые фотографии профиля пользователей меньше - я думаю, потому что их оригинальное изображение профиля facebook имеет размеры, меньшие, чем у ProfilePictureView.LARGE. Это делает мою страницу изображений профиля немного неудобной; есть ли способ «растянуть» эту картинку, чтобы получить ее предопределенный размер ProfilePictureView.LARGE?Large facebook ProfilePictureView картинки из facebook разных размеров

ответ

0

я не нашел реальное решение этой проблемы, поэтому я вышел с этим обходной путь:

пойти styles.xml вашего facebook SDk и редактировать эту строку:

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

надеюсь, что это помогает! более подробная информация на this ответ.

0

Backstory: Мое желаемое поведение для этого было для растягивания изображения профиля. У меня были некоторые проблемы с прямым 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 не счел нужным контролировать этого пользователя, это лучшее решение, которое я вижу. (Я бы порекомендовал оставить комментарий, в котором вы установили идентификатор профиля, если вы или кто-то еще обновите SDK Facebook в будущем, сдувая это изменение.)

Смежные вопросы