【问题标题】:Getting full size image using Android ContactProvider PHOTO_ID on Gingerbread在 Gingerbread 上使用 Android Contact Provider PHOTO ID 获取全尺寸图像
【发布时间】:2013-11-08 13:09:44
【问题描述】:

我已经使用 ContactsContracts.Contacts.PHOTO_ID 获得了如下图片:

      public Bitmap getBitmapFromId(Uri contactUri)
{
    Bitmap bitmap=null;
    String[] projection={ContactsContract.Contacts._ID,ContactsContract.Contacts.PHOTO_ID};
    Cursor c=getContentResolver().query(contactUri, projection, null, null, null);
    if(!isCursorBad(c))
    {
        int photo_id=c.getInt(c.getColumnIndex(ContactsContract.Contacts._ID));
        Log.d(TAG, "The photo id is "+photo_id);
        Cursor c2=getContentResolver().query(ContactsContract.Data.CONTENT_URI, new String[]{ContactsContract.CommonDataKinds.Photo.PHOTO}, ContactsContract.Data.CONTACT_ID+"=?"+" AND "+ContactsContract.Data.MIMETYPE+"=?", new String[]{String.valueOf(photo_id),ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE}, null);
        if(!isCursorBad(c2))
        {
            byte[] data=c2.getBlob(0);
            Log.d(TAG, "Got byte data of length "+data.length);
            bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);
        }
    }   
    return bitmap;
}

这仅返回图像的缩略图。如何使用 PHOTO_ID 列获取完整尺寸的图像?

注意:我发现:

    PHOTO_URI              API LEVEL 11
    PHOTO_THUMBNAIL_URI    API LEVEL 11
    PHOTO_FILE_ID          API LEVEL 14
    PHOTO_ID               API LEVEL 05 

因此,选择 PHOTO_ID(针对 API 级别 10 及以上)。

有没有办法从 ContactsProvider 迷宫中获取全尺寸图片?

【问题讨论】:

    标签: android contacts photo


    【解决方案1】:

    您可以使用以下代码获取完整尺寸的照片,但我发现在 Android 2.3.3 (Gingerbread) 上测试时这不起作用。我对此并不完全确定,但我认为 Gingerbread 可能只允许缩略图大小的照片(不是全尺寸)。

    final Uri person = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactId);
    final Uri photo = Uri.withAppendedPath(person, ContactsContract.Contacts.Photo.DISPLAY_PHOTO);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 1970-01-01
      • 2011-09-28
      相关资源
      最近更新 更多