Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android HD联系人照片大小的常数_Android_Constants_Contacts_Photo - Fatal编程技术网

android HD联系人照片大小的常数

android HD联系人照片大小的常数,android,constants,contacts,photo,Android,Constants,Contacts,Photo,我知道安卓数据库有两种联系人照片, 照片最多可以以两种方式存储-默认的“照片”是直接存储在数据行中的缩略图大小的图像,而“显示照片”(如果存在)是存储为文件的较大版本。]]] 小的是96*96,大的是480*480 现在问题是: 我仍然找不到大的,而小的是数据库中的“data15”,请有人告诉我如何获取大的 我需要把照片放在发射器的第一个屏幕上,所以我需要一张至少800*480的照片,照片大小必须有声明常数 PS:我试过: intent.putExtra("outputX", 96); inte

我知道安卓数据库有两种联系人照片, 照片最多可以以两种方式存储-默认的“照片”是直接存储在数据行中的缩略图大小的图像,而“显示照片”(如果存在)是存储为文件的较大版本。]]] 小的是96*96,大的是480*480 现在问题是:

  • 我仍然找不到大的,而小的是数据库中的“data15”,请有人告诉我如何获取大的
  • 我需要把照片放在发射器的第一个屏幕上,所以我需要一张至少800*480的照片,照片大小必须有声明常数
  • PS:我试过:

    intent.putExtra("outputX", 96);
    intent.putExtra("outputY", 96);
    
    但当我打开数据库时,它变成96*57…混乱。。。。有人帮忙改变了吗

    好人一声平安 (那是中国好孩子,祝你好运)
    谢谢^ ^

    我不太清楚你把照片存储两次是什么意思? 是的,很多设备都会生成缩略图,但这更多的是因为显示缩略图图像是一个常规用例

    您是否尝试获取用户ID并使用该ID查询contacts数据表

    这可能是一种冗长的方法,但是(伪代码)


    谷歌应该提供这些操作的简单易读的示例:)

    要获得更大的图像,您可以使用以下代码(只要您有contactID):


    谢谢,我要说的是,当你裁剪一张照片时,设备会首先制作一张高清照片(480*480),这张照片会在你打电话时显示;然后系统将其压缩为(96*96),如联系人列表中显示的小缩略图。我尝试在数据表中查询。“DATA15”用于存储缩略图照片。我认为智能手机现在有了更好的屏幕,所以(480*480)不是那么(高密度),我想要一个(800*480)一……有什么建议吗?@user2560471你指的是在通过onActivityResult在应用程序中接收照片之前先拍摄并裁剪照片吗?如果是这样,大多数手机都会返回thurmbnail。您需要为设备提供一个文件,以便将未压缩的图像转储到其中。如果需要的话,我可以提供代码给你指出正确的方向。我很感激,呃,我认为最好自己试试……我只想知道默认的联系人数据库不提供存储高清照片的方法。我会添加一个额外的项目来存储它。
    Fetch contact id using the URI RawContacts.CONTENT_URI
    Fetch Photo id using the URI Contacts.CONTENT_URI
    Fetch Photo using the URI Data.CONTENT_URI, the projection you want here is Photo.PHOTO (this will give you a blob)
    
    public static InputStream getLargeContactPhoto(Long contactId, Context context) {
        Uri contactUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactId);
        Uri displayPhotoUri = Uri.withAppendedPath(contactUri, ContactsContract.Contacts.Photo.DISPLAY_PHOTO);
        try {
            AssetFileDescriptor fd = context.getContentResolver().openAssetFileDescriptor(displayPhotoUri, "r");
            return fd.createInputStream();
        } catch (Exception e) {
            return null;
        }
    }