現在、次のコードを使用して画像を取得していますが、完全に機能しています。しかし、キャッシュを実装したいのですuniversal-image-loader
が、〜\ images\pic1のような画像の完全なURLを持っていた他のプロジェクトですでに実装しています。一方、jpegは、Contacts api v3を使用しているときに、入力ストリームを処理する必要があり、そのような完全なURLがないため、実装方法がわかりませんuniversal-image-loader
。
参考のために:apiv3に連絡してください
これが私が今使っているコードです:
Bitmap bm=BitmapFactory.decodeResource(HomeActivity.this.getResources(),
R.drawable.profile_pic);
CONSTANTS.buffer = new byte[4096];
// iterate the loop upto number of contacts
for(int i=0;i<CONSTANTS.contactArrayList.size();i++)
{
//if the contact has any profile pic then retrieve it otherwise set default profile pic from drawable folder
if(CONSTANTS.contactArrayList.get(i).getContactPhotoLink().getEtag()!=null)
{
try
{
GDataRequest request = CONSTANTS.mContactService.createLinkQueryRequest(CONSTANTS.contactArrayList.get(i).getContactPhotoLink());
request.execute();
InputStream in = request.getResponseStream();
CONSTANTS.buffer = ByteStreams.toByteArray(in);
bm = BitmapFactory.decodeByteArray(CONSTANTS.buffer, 0, CONSTANTS.buffer.length);
in.close();
request.end();
}
catch (Exception e) {
UTILS.Log_e("loadProfilePics error", e.toString());
}
}
else
{
bm = BitmapFactory.decodeResource(HomeActivity.this.getResources(),
R.drawable.profile_pic);
}
CONSTANTS.contactArrayList.get(i).setContactPhoto(bm);
}