私は のFacebookの写真を自分のアプリケーションに持っていなければならないアンドロイドでアプリケーションを開発しています。どのように私のアンドロイドアプリケーションでFacebookのプロフィールの画像を取得するには?
アンドロイドでも可能ですか?
私を助けてください。
おかげで、よろしく、 durgesh Limbani
私は のFacebookの写真を自分のアプリケーションに持っていなければならないアンドロイドでアプリケーションを開発しています。どのように私のアンドロイドアプリケーションでFacebookのプロフィールの画像を取得するには?
アンドロイドでも可能ですか?
私を助けてください。
おかげで、よろしく、 durgesh Limbani
はい、それは可能です(申し訳ありませんが、あなたがイエスを求めている/いない質問:))
新しいFacebookアプリを生成し、FacebookのアンドロイドSDKを使用idとそのすべてのジャズ。次に、あなたのアプリケーションでは、プロファイルデータにアクセスする権限をユーザに求めなければなりません。そこからグラフAPIを使用してプロフィール画像を取得することができます。
具体的な手順についてはヘルプが必要な場合は、特定の質問をしてください。
facebook ProfilePictureViewで丸い画像を表示するにはどうすればいいですか? – Ravi
Android Facebook APIを使用すると、Facebookのデータをそこから取得できます。 http://www.ibm.com/developerworks/library/x-androidfacebookapi/ このリンクを確認してください。
facebookクラスではfacebookクラスは推奨されていません – blackjack
必要なのは、ユーザーのユーザーIDで、その後、あなたは次のように関数を呼び出すことができます。
/**
* Function loads the users facebook profile pic
*
* @param userID
*/
public Bitmap getUserPic(String userID) {
String imageURL;
Bitmap bitmap = null;
Log.d(TAG, "Loading Picture");
imageURL = "http://graph.facebook.com/"+userID+"/picture?type=small";
try {
bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageURL).getContent());
} catch (Exception e) {
Log.d("TAG", "Loading Picture FAILED");
e.printStackTrace();
}
return bitmap;
}
あなたは、異なるサイズの画像を取得するためにimageURLにでタイプを変更することができます。まださまよっ方のため
: をFacebookのSDKを使用して示すように、あなたはXMLでProfilePictureView
を実装できます。
<com.facebook.widget.ProfilePictureView
android:id="@+id/profilePicture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:is_cropped="true"
app:preset_size="small" />
そして、あなたは、ユーザーのIDを持っていたら(取得するための要求をしなければなりません1つが、それはまた別の話だ)、あなたはProfilePictureView
自体を取得することができますし、呼び出します。
userID
はあなたがFacebookのから要求したユーザーのIDを含む
String
ある
ProfilePictureView profilePicture = (ProfilePictureView) view.findViewById(R.id.profilePicture);
profilePicture.setProfileId(userID);
を。
しかし、このビューは柔軟性がありません。例えば、円形の画像が必要な場合。 – Loolooii
あなたはどのように私は円形の画像を表示することができます共有することができます。私はたくさんの検索したが、何も見つかりませんでした。 – Ravi
FacebookのSDKを使って最初のログイン時に画像を取得するためにこれを使用しましたが、アプリが読み込まれるたびに戻す方法がわかりません。 – ntgCleaner
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<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="small" />
<TextView
android:id="@+id/userName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_gravity="center"
android:textColor="#333"
android:textSize="18sp" />
</LinearLayout>
としてのあなたのレイアウトactivity_facebook_mainと私は私のこの質問のANSを見つけ
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;
import com.facebook.Request;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.model.GraphUser;
import com.facebook.widget.ProfilePictureView;
public class FacebookMainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_facebook_main);
Session.openActiveSession(this, true, new Session.StatusCallback() {
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
ProfilePictureView profilePictureView = (ProfilePictureView) findViewById(R.id.userProfilePicture);
profilePictureView.setCropped(true);
profilePictureView.setProfileId(user.getId());
TextView Name = (TextView) findViewById(R.id.userName);
Name.setText(user.getName());
}
}
}).executeAsync();
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
}
private void saveFacebookProfilePicture(final String userID){
new Thread(new Runnable() {
@Override
public void run() {
try{
URL imageUrl = new URL("https://graph.facebook.com/" + userID + "/picture?type=large");
Bitmap bitmap = BitmapFactory.decodeStream(imageUrl.openConnection().getInputStream());
FileOutputStream fileOutputStream = new FileOutputStream(new File(getFilesDir(),ProfileEditActivity.PROFILE_PIC));
bitmap.compress(CompressFormat.PNG, 100, fileOutputStream);
}catch(Exception e)
{
Log.e(TAG, ""+e.getMessage());
}
}
}).start();
}
としてあなたFacebookMainActivityコード。私はグラフAPIを使用しています。リンクhttp://developers.facebook.com/docs/reference/api/ – Dugs