2012-02-23 9 views

答えて

0

1つのクエリですべての写真を取得できるとは思いません。それは私が感じる本当に大きなカーソルオブジェクトであり、実際にデータベースに写真を保存することについて私が読んだことはすべて面倒です。

代わりに、あなただけで簡単にすべての連絡先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

+0

あなたの呼び出しと画像のキャッシュを調整する必要があるように聞こえます。あなたのアプリケーションはわかりませんが、1200件の連絡先を一度に表示する方法はありません。一度にすべてを取得するのではなく、表示する必要のある写真だけを呼び出す必要があります(次の写真もあります) –

関連する問題