我有一个ListView,它显示了电话簿中的某些联系人。我使用这个https://stackoverflow.com/a/10235381/1809507作为Cache类并使用AsyncTask。Android ListView与AsyncTask图像问题
当联系人没有照片时,我使用默认的照片。我在XML中设置了默认的一个。当我使用以下方法设置联系人照片时,如果它存在,我滚动列表查看那些没有照片的联系人开始获取其他联系人照片。如果我从retrieveContactPhoto方法获取默认图片作为位图,而不是null并分配给imageview,它的效果很好,但我认为这是不是一个很好的解决方案,因为有很多没有照片的联系人,因为我会多次缓存相同的默认图片。或者我错了?
@Override
protected Bitmap doInBackground(Void... args)
{
Bitmap bm = HelpClasses.retrieveContactPhoto(contextInput, HelpClasses.fetchContactIdFromPhoneNumber(contextInput, phoneNumber));
if(bm != null)
{
synchronized (cache)
{
cache.put(phoneNumber, bm);
}
}
return bm;
}
@Override
protected void onPostExecute(Bitmap result)
{
if(mView != null && result != null)
{
mView.setImageBitmap(result);
}
}
http://samir-mangroliya.blogspot.in/p/android-read-contact-and-display-in.html –
正如你可以看到我的代码我已经有了方法fetchContactIdFromPhoneNumber,然后从联系人retrieveContactPhoto ID。 – edoniti