2013-01-29 2 views
1

내 목표는 프로필 사진 다운로드를 기다려서 해당 사진을 사용할 비디오를 시작할 수 있도록하는 것입니다.Android : facebook 프로필 사진 다운로드를 기다리는 방법?

제공되는 페이스 북 위젯 : ProfilePictureView를 사용하여 사진을 표시합니다.

그리고 나는 executeMeRequestAsync()의 onComplete를 기다리고 있지만 그림 ID 만 포함 된 GraphUser를 기다리는 것처럼 보입니다. 내가 할 때 ProfilePictureView의 setProfileId() 그림을 다운로드 시작됩니다.

ProfilePictureView를 사용하여 다운로드를 기다리는 onComplete() 같은 것을 가질 수 있습니까? 아니면 비트 맵이나 뭔가를 가져 가야하지만 파일 다운로드가 완료되었음을 알리는 콜백은 어떻게해야합니까? FB 및 onComplete를에서 정보의 취득

코드가 비디오

시작됩니다 내 버튼을 보여
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { 
    public void onCompleted(GraphUser user, Response response) { 
     showStartButton();     
    }    
}); 

답변

0

원하는대로 : 다음 화면으로 이동하기 전에 facebook 프로필 사진을 다운로드해야합니다. AsyncTask의 doInBackground 메서드 내에서 linked by Ming Li loadBitmap 메서드를 사용했습니다. 이

public void onCompleted(GraphUser user, Response response) { 
    String id = user.getId(); 
    String url = "http://graph.facebook.com/" + id + "/picture?type=normal"; 
    ImageLoader il = new ImageLoader(getActivity());//this class extends AsyncTask<String, Integer, Bitmap> 
    il.execute(url); 
    showStartButton();     
} 

같은

의 onComplete 방법 모양 그래서 이런 식으로 나는 사용자가 다운로드가 완료되는 것을 의미하는 AsyncTask를 onPostExecute() 메서드를 호출 할 때 사라질 것해서 ProgressDialog를 사용하여 계속 방지합니다.

또한이 같은 사용자 프로필 이미지를 설정할 수 있습니다
1
당신이 직접 애니메이션 뷰 개체를 포함하지 않으려면 당신은 ProfilePictureView을 (사용할 필요가 없습니다

, 이 경우 onCompleted 콜백에서 setProfileId를 호출해야합니다. 그냥 프로필 사진을 얻고 싶다면, 당신의 onCompleted, 당신은 같은 것을 수행 할 수 있습니다

String id = user.getId(); 
Uri uri = Uri.parse("http://graph.facebook.com/" + id + "/picture"); 

을 그리고 URI는 비트 맵을 (그렇게하는 방법에 대한 answers here 참조)을 만들 것을 사용합니다.

다른 크기를 원할 경우 uri에 "type"또는 "height"/ "width"매개 변수를 지정할 수도 있습니다. 매개 변수 값에 대한 자세한 내용은 this page (및 "사용자 프로필 사진"으로 검색)을 참조하십시오.

+0

사실 내 질문에는 대답하지 않습니다. setProfileId를 사용하고 있었는데 이미지를 다운로드하기 시작했을 때만 호출했습니다. 하지만 내 솔루션에서 비트 맵을 사용한다는 것을 이해하게합니다. 그 점과 링크에 감사드립니다! – pepipe

2

:

<com.facebook.widget.ProfilePictureView 
android:id="@+id/friendProfilePicture" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="center_horizontal" 
android:padding="5sp" 
facebook:preset_size="small" /> 

페이스 북 : preset_size :.

: 작은/보통/대형/사용자 정의 (필요에 따라) 는 코드에서 페이스 북의 사용자 ID를 설정
ProfilePictureView profilePictureView = (ProfilePictureView) findViewById(R.id.friendProfilePicture); 
profilePictureView.setProfileId(userId)`; 
관련 문제