gpt4 book ai didi

android - 是否可以在 universal-image-loader 的帮助下使用 Contacts api v3 检索联系人图像?

转载 作者:行者123 更新时间:2023-11-30 03:50:45 25 4
gpt4 key购买 nike

现在我正在使用以下代码检索图像并且它运行良好。但我想使用 universal-image-loader 实现缓存。我已经在我的其他项目中实现了它我有像 ~\images\pic1.jpeg 这样的完整图像 url。另一方面,在使用 Contacts api v3 时,我必须处理输入流,但我没有这样完整的 url。所以我不知道如何实现universal-image-loader

供引用:Contact api v3

这是我现在使用的代码:

    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);
}

最佳答案

是的,universal-image-loader允许你这样做。只需按照以下步骤操作:

  1. 可以引入自己的url类型,比如contacts-api-v3://user_id=<user_id>
  2. 提供一种检索 InputStream 的方法对于这样的网址:

    public class CustomImageDownloader extends URLConnectionImageDownloader {
    @Override
    protected InputStream getStreamFromOtherSource(URI imageUri) throws IOException {
    if (imageUri.getScheme().equals("contacts-api-v3")) {
    // here you can use code provided in your question
    return retriveInputStreamForThisUser();
    }
    return null;
    }
    }
  3. 配置 ImageLoader使用你的 CustomImageDownloader :

    final ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(context);

    // some basic configuration should be here

    builder.imageDownloader(new CustomImageDownloader());
  4. 现在你可以这样使用它了:

    ImageLoader.getInstance().displayImage("contacts-api-v3://user_id=123", imageView);

关于android - 是否可以在 universal-image-loader 的帮助下使用 Contacts api v3 检索联系人图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14180878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com