私は個人的に、ユーザープロファイルを扱うときにFQLを使用することを好みます。FQLを試してみたい場合は、次のコードを確認してください。Graph APIを使い続けたい場合は、次の回答を参照してください:https ://stackoverflow.com/a/12434640/450534
try {
String query = "SELECT pic_cover FROM user where uid = " + PUT_THE_USER_ID_HERE;
Bundle param = new Bundle();
param.putString("method", "fql.query");
param.putString("query", query);
String response = Utility.mFacebook.request(param);
JSONArray JAUser = new JSONArray(response);
for (int i = 0; i < JAUser.length(); i++) {
JSONObject JOUser = JAUser.getJSONObject(i);
// COVER PHOTO
if (JOUser.has("pic_cover")) {
String getCover = JOUser.getString("pic_cover");
if (getCover.equals("null")) {
String finalCover = null;
} else {
JSONObject JOCoverSource = JOUser.optJSONObject("pic_cover");
if (JOCoverSource.has("source")) {
String finalCover = JOCoverSource.getString("source");
} else {
String finalCover = null;
}
}
} else {
String finalCover = null;
}
}
} catch (Exception e) {
// TODO: handle exception
}
上記のコードは、プロファイルにカバー写真が設定されていないユーザーをすでに考慮しており、その可用性を確認しています。このコードを使用するURL
と、カバー写真が表示され、必要に応じて処理できます。
注:ログインしているユーザーのカバー写真を取得する場合、このコードは次のSELECT pic_cover FROM user where uid = " + PUT_THE_USER_ID_HERE;
ように記述することもできSELECT pic_cover FROM user where uid = me()";
ます。ログインしていないユーザーのカバー写真の場合、上記をそのまま使用できます。
補足としていくつかのこと。
- 私はFedorの遅延読み込み手法を使用して、ほぼ排他的に画像を読み込みます。
- コードブロック、マイニング、または選択したその他のソリューションをで実行することをお勧めします
AsyncTask
。