2012-02-23 106 views

回答

0

我不相信你可以用一個查詢獲得所有的照片。這將是一個非常大的光標對象,再加上我已經讀過的關於將照片實際存儲在數據庫中的一切都很麻煩。

相反,你可以很容易地在只查詢所有聯繫人的ID,並通過

public static Bitmap loadContactPhoto(ContentResolver cr, long id) { 
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id); 
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri); 
if (input == null) { 
    return null; 
} 
return BitmapFactory.decodeStream(input);} 
+0

搶照片我做同樣的事情......但它正在採取的很長一段時間的地獄來獲取數據...我在我的手機中有大約1200個聯繫人......而且它正在談論15-20秒以獲取所有數據。如果我只是刪除負載圖片調用...所有的聯繫人都在1秒內加載。請讓我知道是否有其他方式。 – rahul 2012-02-23 20:32:25

+0

所以這聽起來像你將不得不做混合調節你的通話和圖像緩存。我不知道你的應用程序,但是你沒有任何可能的方式一次顯示1200個聯繫人。你只需要打電話給你需要顯示的照片(可能是接下來的幾個),而不是一次性完成所有的事情 – 2012-02-23 20:51:04