0

連絡先アプリケーションを作成しています。メインアクティビティには、連絡先を表示するリストビューがあります。

CursorAdapterを使用して、リストでカーソルを処理しています

それはすべて写真なしでうまく機能します。

ただし、写真を使おうとするとスクロールが遅くなります。

inputStreamがnullで、ロードする画像がない場合でも、入力ストリームを開くための呼び出しは非常に遅くなります。

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

私はそれについて何ができますか?

4

1 に答える 1

0

UIスレッドに画像を読み込んでいますか?...はいの場合、スレッドをブロックしてユーザーエクスペリエンスを遅くするため、これを行わないでください。

画像の遅延読み込みについて学ぶ必要があります....それをグーグルで検索してみてください....

また、UIスレッドでデータベース操作を実行しません...UIスレッドで小さなDB操作を実行しても問題ないと言う人もいますが...可能な限り回避します...

以下のリンクを確認してください。

ListViewでの画像の遅延読み込み

于 2012-01-22T23:29:24.823 に答える