如何查找联系人图片支持的最大图像大小?

时间:2013-07-24 13:01:54

标签: android image photo resolution android-contacts

背景

从jelly bean(4.1)开始,android现在支持720x720的联系人图像。

之前,从ICS(4.0)开始,android支持256x256的联系人图片。

之前,联系人照片只有缩略图的大小 - 96x96

问题

API中是否有任何函数返回联系人图像的最大大小?

我也希望制造商不会改变最大图像尺寸,即使他们这样做了,我们也有这样的功能,它会让我们恢复正确的尺寸。

2 个答案:

答案 0 :(得分:5)

根据this link,获得最大尺寸的正确方法是:

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public static int getMaxContactPhotoSize(final Context context) {
    if (VERSION.SDK_INT >= VERSION_CODES.ICE_CREAM_SANDWICH) {
        // Note that this URI is safe to call on the UI thread.
        final Uri uri = ContactsContract.DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI;
        final String[] projection = new String[] { ContactsContract.DisplayPhoto.DISPLAY_MAX_DIM };
        final Cursor c = context.getContentResolver().query(uri, projection, null, null, null);
        try {
            c.moveToFirst();
            return c.getInt(0);
        } finally {
            c.close();
        }
    }
    // fallback: 96x96 is the max contact photo size for pre-ICS versions
    return 96;
}

答案 1 :(得分:1)

来自the announcement

  

使用Android 4.1,您可以存储大小为720 x 720的联系人照片,使联系人更加丰富和个性化。应用可以存储和检索该尺寸的联系人照片,或使用任何其他尺寸。 特定设备支持的最大照片尺寸可能会有所不同,因此应用应在运行时查询内置联系人提供商,以获取当前设备的最大尺寸。

我会查询ContactsContract.DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI。它应该返回你想要的东西。